Added code for exporting
This commit is contained in:
parent
006f4a122f
commit
19d9fe434a
|
@ -1,27 +0,0 @@
|
||||||
ply
|
|
||||||
format ascii 1.0
|
|
||||||
comment VCGLIB generated
|
|
||||||
element vertex 7
|
|
||||||
property double x
|
|
||||||
property double y
|
|
||||||
property double z
|
|
||||||
property uchar red
|
|
||||||
property uchar green
|
|
||||||
property uchar blue
|
|
||||||
property uchar alpha
|
|
||||||
element face 0
|
|
||||||
property list uchar int vertex_indices
|
|
||||||
element edge 3
|
|
||||||
property int vertex1
|
|
||||||
property int vertex2
|
|
||||||
end_header
|
|
||||||
0 0 0 255 255 255 255
|
|
||||||
-0.1666666666666666 -0.2886751345948129 0 255 255 255 255
|
|
||||||
-0.3333333333333333 -0.5773502691896257 0 255 255 255 255
|
|
||||||
0 -0.8660254037844387 0 255 255 255 255
|
|
||||||
0.3333333333333333 -0.5773502691896258 0 255 255 255 255
|
|
||||||
0.1666666666666666 -0.288675134594813 0 255 255 255 255
|
|
||||||
0.1 -0.5773502691896258 0 255 255 255 255
|
|
||||||
1 5
|
|
||||||
3 6
|
|
||||||
5 6
|
|
|
@ -1,27 +0,0 @@
|
||||||
ply
|
|
||||||
format ascii 1.0
|
|
||||||
comment VCGLIB generated
|
|
||||||
element vertex 7
|
|
||||||
property double x
|
|
||||||
property double y
|
|
||||||
property double z
|
|
||||||
property uchar red
|
|
||||||
property uchar green
|
|
||||||
property uchar blue
|
|
||||||
property uchar alpha
|
|
||||||
element face 0
|
|
||||||
property list uchar int vertex_indices
|
|
||||||
element edge 3
|
|
||||||
property int vertex1
|
|
||||||
property int vertex2
|
|
||||||
end_header
|
|
||||||
0 0 0 255 255 255 255
|
|
||||||
-0.1666666666666666 -0.2886751345948129 0 255 255 255 255
|
|
||||||
-0.3333333333333333 -0.5773502691896257 0 255 255 255 255
|
|
||||||
0 -0.8660254037844387 0 255 255 255 255
|
|
||||||
0.3333333333333333 -0.5773502691896258 0 255 255 255 255
|
|
||||||
0.1666666666666666 -0.288675134594813 0 255 255 255 255
|
|
||||||
0.1 -0.5773502691896258 0 255 255 255 255
|
|
||||||
2 6
|
|
||||||
3 6
|
|
||||||
4 6
|
|
|
@ -1,27 +0,0 @@
|
||||||
ply
|
|
||||||
format ascii 1.0
|
|
||||||
comment VCGLIB generated
|
|
||||||
element vertex 7
|
|
||||||
property double x
|
|
||||||
property double y
|
|
||||||
property double z
|
|
||||||
property uchar red
|
|
||||||
property uchar green
|
|
||||||
property uchar blue
|
|
||||||
property uchar alpha
|
|
||||||
element face 0
|
|
||||||
property list uchar int vertex_indices
|
|
||||||
element edge 3
|
|
||||||
property int vertex1
|
|
||||||
property int vertex2
|
|
||||||
end_header
|
|
||||||
0 0 0 255 255 255 255
|
|
||||||
-0.1666666666666666 -0.2886751345948129 0 255 255 255 255
|
|
||||||
-0.3333333333333333 -0.5773502691896257 0 255 255 255 255
|
|
||||||
0 -0.8660254037844387 0 255 255 255 255
|
|
||||||
0.3333333333333333 -0.5773502691896258 0 255 255 255 255
|
|
||||||
0.1666666666666666 -0.288675134594813 0 255 255 255 255
|
|
||||||
0.1 -0.5773502691896258 0 255 255 255 255
|
|
||||||
1 5
|
|
||||||
2 5
|
|
||||||
3 4
|
|
|
@ -1,27 +0,0 @@
|
||||||
ply
|
|
||||||
format ascii 1.0
|
|
||||||
comment VCGLIB generated
|
|
||||||
element vertex 7
|
|
||||||
property double x
|
|
||||||
property double y
|
|
||||||
property double z
|
|
||||||
property uchar red
|
|
||||||
property uchar green
|
|
||||||
property uchar blue
|
|
||||||
property uchar alpha
|
|
||||||
element face 0
|
|
||||||
property list uchar int vertex_indices
|
|
||||||
element edge 3
|
|
||||||
property int vertex1
|
|
||||||
property int vertex2
|
|
||||||
end_header
|
|
||||||
0 0 0 255 255 255 255
|
|
||||||
-0.1666666666666666 -0.2886751345948129 0 255 255 255 255
|
|
||||||
-0.3333333333333333 -0.5773502691896257 0 255 255 255 255
|
|
||||||
0 -0.8660254037844387 0 255 255 255 255
|
|
||||||
0.3333333333333333 -0.5773502691896258 0 255 255 255 255
|
|
||||||
0.1666666666666666 -0.288675134594813 0 255 255 255 255
|
|
||||||
0.1 -0.5773502691896258 0 255 255 255 255
|
|
||||||
1 5
|
|
||||||
2 3
|
|
||||||
2 5
|
|
|
@ -1,27 +0,0 @@
|
||||||
ply
|
|
||||||
format ascii 1.0
|
|
||||||
comment VCGLIB generated
|
|
||||||
element vertex 7
|
|
||||||
property double x
|
|
||||||
property double y
|
|
||||||
property double z
|
|
||||||
property uchar red
|
|
||||||
property uchar green
|
|
||||||
property uchar blue
|
|
||||||
property uchar alpha
|
|
||||||
element face 0
|
|
||||||
property list uchar int vertex_indices
|
|
||||||
element edge 3
|
|
||||||
property int vertex1
|
|
||||||
property int vertex2
|
|
||||||
end_header
|
|
||||||
0 0 0 255 255 255 255
|
|
||||||
-0.1666666666666666 -0.2886751345948129 0 255 255 255 255
|
|
||||||
-0.3333333333333333 -0.5773502691896257 0 255 255 255 255
|
|
||||||
0 -0.8660254037844387 0 255 255 255 255
|
|
||||||
0.3333333333333333 -0.5773502691896258 0 255 255 255 255
|
|
||||||
0.1666666666666666 -0.288675134594813 0 255 255 255 255
|
|
||||||
0.1 -0.5773502691896258 0 255 255 255 255
|
|
||||||
1 5
|
|
||||||
1 6
|
|
||||||
3 6
|
|
|
@ -1,27 +0,0 @@
|
||||||
ply
|
|
||||||
format ascii 1.0
|
|
||||||
comment VCGLIB generated
|
|
||||||
element vertex 7
|
|
||||||
property double x
|
|
||||||
property double y
|
|
||||||
property double z
|
|
||||||
property uchar red
|
|
||||||
property uchar green
|
|
||||||
property uchar blue
|
|
||||||
property uchar alpha
|
|
||||||
element face 0
|
|
||||||
property list uchar int vertex_indices
|
|
||||||
element edge 3
|
|
||||||
property int vertex1
|
|
||||||
property int vertex2
|
|
||||||
end_header
|
|
||||||
0 0 0 255 255 255 255
|
|
||||||
-0.1666666666666666 -0.2886751345948129 0 255 255 255 255
|
|
||||||
-0.3333333333333333 -0.5773502691896257 0 255 255 255 255
|
|
||||||
0 -0.8660254037844387 0 255 255 255 255
|
|
||||||
0.3333333333333333 -0.5773502691896258 0 255 255 255 255
|
|
||||||
0.1666666666666666 -0.288675134594813 0 255 255 255 255
|
|
||||||
0.1 -0.5773502691896258 0 255 255 255 255
|
|
||||||
2 6
|
|
||||||
3 4
|
|
||||||
4 6
|
|
|
@ -1,27 +0,0 @@
|
||||||
ply
|
|
||||||
format ascii 1.0
|
|
||||||
comment VCGLIB generated
|
|
||||||
element vertex 7
|
|
||||||
property double x
|
|
||||||
property double y
|
|
||||||
property double z
|
|
||||||
property uchar red
|
|
||||||
property uchar green
|
|
||||||
property uchar blue
|
|
||||||
property uchar alpha
|
|
||||||
element face 0
|
|
||||||
property list uchar int vertex_indices
|
|
||||||
element edge 3
|
|
||||||
property int vertex1
|
|
||||||
property int vertex2
|
|
||||||
end_header
|
|
||||||
0 0 0 255 255 255 255
|
|
||||||
-0.1666666666666666 -0.2886751345948129 0 255 255 255 255
|
|
||||||
-0.3333333333333333 -0.5773502691896257 0 255 255 255 255
|
|
||||||
0 -0.8660254037844387 0 255 255 255 255
|
|
||||||
0.3333333333333333 -0.5773502691896258 0 255 255 255 255
|
|
||||||
0.1666666666666666 -0.288675134594813 0 255 255 255 255
|
|
||||||
0.1 -0.5773502691896258 0 255 255 255 255
|
|
||||||
2 6
|
|
||||||
3 4
|
|
||||||
3 6
|
|
|
@ -1,27 +0,0 @@
|
||||||
ply
|
|
||||||
format ascii 1.0
|
|
||||||
comment VCGLIB generated
|
|
||||||
element vertex 7
|
|
||||||
property double x
|
|
||||||
property double y
|
|
||||||
property double z
|
|
||||||
property uchar red
|
|
||||||
property uchar green
|
|
||||||
property uchar blue
|
|
||||||
property uchar alpha
|
|
||||||
element face 0
|
|
||||||
property list uchar int vertex_indices
|
|
||||||
element edge 3
|
|
||||||
property int vertex1
|
|
||||||
property int vertex2
|
|
||||||
end_header
|
|
||||||
0 0 0 255 255 255 255
|
|
||||||
-0.1666666666666666 -0.2886751345948129 0 255 255 255 255
|
|
||||||
-0.3333333333333333 -0.5773502691896257 0 255 255 255 255
|
|
||||||
0 -0.8660254037844387 0 255 255 255 255
|
|
||||||
0.3333333333333333 -0.5773502691896258 0 255 255 255 255
|
|
||||||
0.1666666666666666 -0.288675134594813 0 255 255 255 255
|
|
||||||
0.1 -0.5773502691896258 0 255 255 255 255
|
|
||||||
1 4
|
|
||||||
1 5
|
|
||||||
3 4
|
|
|
@ -1,27 +0,0 @@
|
||||||
ply
|
|
||||||
format ascii 1.0
|
|
||||||
comment VCGLIB generated
|
|
||||||
element vertex 7
|
|
||||||
property double x
|
|
||||||
property double y
|
|
||||||
property double z
|
|
||||||
property uchar red
|
|
||||||
property uchar green
|
|
||||||
property uchar blue
|
|
||||||
property uchar alpha
|
|
||||||
element face 0
|
|
||||||
property list uchar int vertex_indices
|
|
||||||
element edge 3
|
|
||||||
property int vertex1
|
|
||||||
property int vertex2
|
|
||||||
end_header
|
|
||||||
0 0 0 255 255 255 255
|
|
||||||
-0.1666666666666666 -0.2886751345948129 0 255 255 255 255
|
|
||||||
-0.3333333333333333 -0.5773502691896257 0 255 255 255 255
|
|
||||||
0 -0.8660254037844387 0 255 255 255 255
|
|
||||||
0.3333333333333333 -0.5773502691896258 0 255 255 255 255
|
|
||||||
0.1666666666666666 -0.288675134594813 0 255 255 255 255
|
|
||||||
0.1 -0.5773502691896258 0 255 255 255 255
|
|
||||||
1 4
|
|
||||||
1 5
|
|
||||||
2 3
|
|
|
@ -1,27 +0,0 @@
|
||||||
ply
|
|
||||||
format ascii 1.0
|
|
||||||
comment VCGLIB generated
|
|
||||||
element vertex 7
|
|
||||||
property double x
|
|
||||||
property double y
|
|
||||||
property double z
|
|
||||||
property uchar red
|
|
||||||
property uchar green
|
|
||||||
property uchar blue
|
|
||||||
property uchar alpha
|
|
||||||
element face 0
|
|
||||||
property list uchar int vertex_indices
|
|
||||||
element edge 3
|
|
||||||
property int vertex1
|
|
||||||
property int vertex2
|
|
||||||
end_header
|
|
||||||
0 0 0 255 255 255 255
|
|
||||||
-0.1666666666666666 -0.2886751345948129 0 255 255 255 255
|
|
||||||
-0.3333333333333333 -0.5773502691896257 0 255 255 255 255
|
|
||||||
0 -0.8660254037844387 0 255 255 255 255
|
|
||||||
0.3333333333333333 -0.5773502691896258 0 255 255 255 255
|
|
||||||
0.1666666666666666 -0.288675134594813 0 255 255 255 255
|
|
||||||
0.1 -0.5773502691896258 0 255 255 255 255
|
|
||||||
1 3
|
|
||||||
3 6
|
|
||||||
5 6
|
|
|
@ -1,27 +0,0 @@
|
||||||
ply
|
|
||||||
format ascii 1.0
|
|
||||||
comment VCGLIB generated
|
|
||||||
element vertex 7
|
|
||||||
property double x
|
|
||||||
property double y
|
|
||||||
property double z
|
|
||||||
property uchar red
|
|
||||||
property uchar green
|
|
||||||
property uchar blue
|
|
||||||
property uchar alpha
|
|
||||||
element face 0
|
|
||||||
property list uchar int vertex_indices
|
|
||||||
element edge 3
|
|
||||||
property int vertex1
|
|
||||||
property int vertex2
|
|
||||||
end_header
|
|
||||||
0 0 0 255 255 255 255
|
|
||||||
-0.1666666666666666 -0.2886751345948129 0 255 255 255 255
|
|
||||||
-0.3333333333333333 -0.5773502691896257 0 255 255 255 255
|
|
||||||
0 -0.8660254037844387 0 255 255 255 255
|
|
||||||
0.3333333333333333 -0.5773502691896258 0 255 255 255 255
|
|
||||||
0.1666666666666666 -0.288675134594813 0 255 255 255 255
|
|
||||||
0.1 -0.5773502691896258 0 255 255 255 255
|
|
||||||
1 3
|
|
||||||
1 6
|
|
||||||
5 6
|
|
|
@ -1,27 +0,0 @@
|
||||||
ply
|
|
||||||
format ascii 1.0
|
|
||||||
comment VCGLIB generated
|
|
||||||
element vertex 7
|
|
||||||
property double x
|
|
||||||
property double y
|
|
||||||
property double z
|
|
||||||
property uchar red
|
|
||||||
property uchar green
|
|
||||||
property uchar blue
|
|
||||||
property uchar alpha
|
|
||||||
element face 0
|
|
||||||
property list uchar int vertex_indices
|
|
||||||
element edge 3
|
|
||||||
property int vertex1
|
|
||||||
property int vertex2
|
|
||||||
end_header
|
|
||||||
0 0 0 255 255 255 255
|
|
||||||
-0.1666666666666666 -0.2886751345948129 0 255 255 255 255
|
|
||||||
-0.3333333333333333 -0.5773502691896257 0 255 255 255 255
|
|
||||||
0 -0.8660254037844387 0 255 255 255 255
|
|
||||||
0.3333333333333333 -0.5773502691896258 0 255 255 255 255
|
|
||||||
0.1666666666666666 -0.288675134594813 0 255 255 255 255
|
|
||||||
0.1 -0.5773502691896258 0 255 255 255 255
|
|
||||||
1 3
|
|
||||||
1 5
|
|
||||||
3 5
|
|
|
@ -1,27 +0,0 @@
|
||||||
ply
|
|
||||||
format ascii 1.0
|
|
||||||
comment VCGLIB generated
|
|
||||||
element vertex 7
|
|
||||||
property double x
|
|
||||||
property double y
|
|
||||||
property double z
|
|
||||||
property uchar red
|
|
||||||
property uchar green
|
|
||||||
property uchar blue
|
|
||||||
property uchar alpha
|
|
||||||
element face 0
|
|
||||||
property list uchar int vertex_indices
|
|
||||||
element edge 3
|
|
||||||
property int vertex1
|
|
||||||
property int vertex2
|
|
||||||
end_header
|
|
||||||
0 0 0 255 255 255 255
|
|
||||||
-0.1666666666666666 -0.2886751345948129 0 255 255 255 255
|
|
||||||
-0.3333333333333333 -0.5773502691896257 0 255 255 255 255
|
|
||||||
0 -0.8660254037844387 0 255 255 255 255
|
|
||||||
0.3333333333333333 -0.5773502691896258 0 255 255 255 255
|
|
||||||
0.1666666666666666 -0.288675134594813 0 255 255 255 255
|
|
||||||
0.1 -0.5773502691896258 0 255 255 255 255
|
|
||||||
1 3
|
|
||||||
1 4
|
|
||||||
2 3
|
|
|
@ -1,27 +0,0 @@
|
||||||
ply
|
|
||||||
format ascii 1.0
|
|
||||||
comment VCGLIB generated
|
|
||||||
element vertex 7
|
|
||||||
property double x
|
|
||||||
property double y
|
|
||||||
property double z
|
|
||||||
property uchar red
|
|
||||||
property uchar green
|
|
||||||
property uchar blue
|
|
||||||
property uchar alpha
|
|
||||||
element face 0
|
|
||||||
property list uchar int vertex_indices
|
|
||||||
element edge 3
|
|
||||||
property int vertex1
|
|
||||||
property int vertex2
|
|
||||||
end_header
|
|
||||||
0 0 0 255 255 255 255
|
|
||||||
-0.1666666666666666 -0.2886751345948129 0 255 255 255 255
|
|
||||||
-0.3333333333333333 -0.5773502691896257 0 255 255 255 255
|
|
||||||
0 -0.8660254037844387 0 255 255 255 255
|
|
||||||
0.3333333333333333 -0.5773502691896258 0 255 255 255 255
|
|
||||||
0.1666666666666666 -0.288675134594813 0 255 255 255 255
|
|
||||||
0.1 -0.5773502691896258 0 255 255 255 255
|
|
||||||
2 5
|
|
||||||
3 4
|
|
||||||
3 5
|
|
|
@ -1,27 +0,0 @@
|
||||||
ply
|
|
||||||
format ascii 1.0
|
|
||||||
comment VCGLIB generated
|
|
||||||
element vertex 7
|
|
||||||
property double x
|
|
||||||
property double y
|
|
||||||
property double z
|
|
||||||
property uchar red
|
|
||||||
property uchar green
|
|
||||||
property uchar blue
|
|
||||||
property uchar alpha
|
|
||||||
element face 0
|
|
||||||
property list uchar int vertex_indices
|
|
||||||
element edge 3
|
|
||||||
property int vertex1
|
|
||||||
property int vertex2
|
|
||||||
end_header
|
|
||||||
0 0 0 255 255 255 255
|
|
||||||
-0.1666666666666666 -0.2886751345948129 0 255 255 255 255
|
|
||||||
-0.3333333333333333 -0.5773502691896257 0 255 255 255 255
|
|
||||||
0 -0.8660254037844387 0 255 255 255 255
|
|
||||||
0.3333333333333333 -0.5773502691896258 0 255 255 255 255
|
|
||||||
0.1666666666666666 -0.288675134594813 0 255 255 255 255
|
|
||||||
0.1 -0.5773502691896258 0 255 255 255 255
|
|
||||||
1 2
|
|
||||||
2 5
|
|
||||||
3 5
|
|
|
@ -1,27 +0,0 @@
|
||||||
ply
|
|
||||||
format ascii 1.0
|
|
||||||
comment VCGLIB generated
|
|
||||||
element vertex 7
|
|
||||||
property double x
|
|
||||||
property double y
|
|
||||||
property double z
|
|
||||||
property uchar red
|
|
||||||
property uchar green
|
|
||||||
property uchar blue
|
|
||||||
property uchar alpha
|
|
||||||
element face 0
|
|
||||||
property list uchar int vertex_indices
|
|
||||||
element edge 3
|
|
||||||
property int vertex1
|
|
||||||
property int vertex2
|
|
||||||
end_header
|
|
||||||
0 0 0 255 255 255 255
|
|
||||||
-0.1666666666666666 -0.2886751345948129 0 255 255 255 255
|
|
||||||
-0.3333333333333333 -0.5773502691896257 0 255 255 255 255
|
|
||||||
0 -0.8660254037844387 0 255 255 255 255
|
|
||||||
0.3333333333333333 -0.5773502691896258 0 255 255 255 255
|
|
||||||
0.1666666666666666 -0.288675134594813 0 255 255 255 255
|
|
||||||
0.1 -0.5773502691896258 0 255 255 255 255
|
|
||||||
1 2
|
|
||||||
2 5
|
|
||||||
3 4
|
|
|
@ -1,27 +0,0 @@
|
||||||
ply
|
|
||||||
format ascii 1.0
|
|
||||||
comment VCGLIB generated
|
|
||||||
element vertex 7
|
|
||||||
property double x
|
|
||||||
property double y
|
|
||||||
property double z
|
|
||||||
property uchar red
|
|
||||||
property uchar green
|
|
||||||
property uchar blue
|
|
||||||
property uchar alpha
|
|
||||||
element face 0
|
|
||||||
property list uchar int vertex_indices
|
|
||||||
element edge 3
|
|
||||||
property int vertex1
|
|
||||||
property int vertex2
|
|
||||||
end_header
|
|
||||||
0 0 0 255 255 255 255
|
|
||||||
-0.1666666666666666 -0.2886751345948129 0 255 255 255 255
|
|
||||||
-0.3333333333333333 -0.5773502691896257 0 255 255 255 255
|
|
||||||
0 -0.8660254037844387 0 255 255 255 255
|
|
||||||
0.3333333333333333 -0.5773502691896258 0 255 255 255 255
|
|
||||||
0.1666666666666666 -0.288675134594813 0 255 255 255 255
|
|
||||||
0.1 -0.5773502691896258 0 255 255 255 255
|
|
||||||
1 2
|
|
||||||
2 3
|
|
||||||
3 5
|
|
|
@ -1,27 +0,0 @@
|
||||||
ply
|
|
||||||
format ascii 1.0
|
|
||||||
comment VCGLIB generated
|
|
||||||
element vertex 7
|
|
||||||
property double x
|
|
||||||
property double y
|
|
||||||
property double z
|
|
||||||
property uchar red
|
|
||||||
property uchar green
|
|
||||||
property uchar blue
|
|
||||||
property uchar alpha
|
|
||||||
element face 0
|
|
||||||
property list uchar int vertex_indices
|
|
||||||
element edge 3
|
|
||||||
property int vertex1
|
|
||||||
property int vertex2
|
|
||||||
end_header
|
|
||||||
0 0 0 255 255 255 255
|
|
||||||
-0.1666666666666666 -0.2886751345948129 0 255 255 255 255
|
|
||||||
-0.3333333333333333 -0.5773502691896257 0 255 255 255 255
|
|
||||||
0 -0.8660254037844387 0 255 255 255 255
|
|
||||||
0.3333333333333333 -0.5773502691896258 0 255 255 255 255
|
|
||||||
0.1666666666666666 -0.288675134594813 0 255 255 255 255
|
|
||||||
0.1 -0.5773502691896258 0 255 255 255 255
|
|
||||||
1 2
|
|
||||||
2 3
|
|
||||||
2 5
|
|
|
@ -1,27 +0,0 @@
|
||||||
ply
|
|
||||||
format ascii 1.0
|
|
||||||
comment VCGLIB generated
|
|
||||||
element vertex 7
|
|
||||||
property double x
|
|
||||||
property double y
|
|
||||||
property double z
|
|
||||||
property uchar red
|
|
||||||
property uchar green
|
|
||||||
property uchar blue
|
|
||||||
property uchar alpha
|
|
||||||
element face 0
|
|
||||||
property list uchar int vertex_indices
|
|
||||||
element edge 3
|
|
||||||
property int vertex1
|
|
||||||
property int vertex2
|
|
||||||
end_header
|
|
||||||
0 0 0 255 255 255 255
|
|
||||||
-0.1666666666666666 -0.2886751345948129 0 255 255 255 255
|
|
||||||
-0.3333333333333333 -0.5773502691896257 0 255 255 255 255
|
|
||||||
0 -0.8660254037844387 0 255 255 255 255
|
|
||||||
0.3333333333333333 -0.5773502691896258 0 255 255 255 255
|
|
||||||
0.1666666666666666 -0.288675134594813 0 255 255 255 255
|
|
||||||
0.1 -0.5773502691896258 0 255 255 255 255
|
|
||||||
1 2
|
|
||||||
1 5
|
|
||||||
3 4
|
|
|
@ -1,27 +0,0 @@
|
||||||
ply
|
|
||||||
format ascii 1.0
|
|
||||||
comment VCGLIB generated
|
|
||||||
element vertex 7
|
|
||||||
property double x
|
|
||||||
property double y
|
|
||||||
property double z
|
|
||||||
property uchar red
|
|
||||||
property uchar green
|
|
||||||
property uchar blue
|
|
||||||
property uchar alpha
|
|
||||||
element face 0
|
|
||||||
property list uchar int vertex_indices
|
|
||||||
element edge 3
|
|
||||||
property int vertex1
|
|
||||||
property int vertex2
|
|
||||||
end_header
|
|
||||||
0 0 0 255 255 255 255
|
|
||||||
-0.1666666666666666 -0.2886751345948129 0 255 255 255 255
|
|
||||||
-0.3333333333333333 -0.5773502691896257 0 255 255 255 255
|
|
||||||
0 -0.8660254037844387 0 255 255 255 255
|
|
||||||
0.3333333333333333 -0.5773502691896258 0 255 255 255 255
|
|
||||||
0.1666666666666666 -0.288675134594813 0 255 255 255 255
|
|
||||||
0.1 -0.5773502691896258 0 255 255 255 255
|
|
||||||
1 2
|
|
||||||
1 5
|
|
||||||
2 3
|
|
|
@ -1,27 +0,0 @@
|
||||||
ply
|
|
||||||
format ascii 1.0
|
|
||||||
comment VCGLIB generated
|
|
||||||
element vertex 7
|
|
||||||
property double x
|
|
||||||
property double y
|
|
||||||
property double z
|
|
||||||
property uchar red
|
|
||||||
property uchar green
|
|
||||||
property uchar blue
|
|
||||||
property uchar alpha
|
|
||||||
element face 0
|
|
||||||
property list uchar int vertex_indices
|
|
||||||
element edge 3
|
|
||||||
property int vertex1
|
|
||||||
property int vertex2
|
|
||||||
end_header
|
|
||||||
0 0 0 255 255 255 255
|
|
||||||
-0.1666666666666666 -0.2886751345948129 0 255 255 255 255
|
|
||||||
-0.3333333333333333 -0.5773502691896257 0 255 255 255 255
|
|
||||||
0 -0.8660254037844387 0 255 255 255 255
|
|
||||||
0.3333333333333333 -0.5773502691896258 0 255 255 255 255
|
|
||||||
0.1666666666666666 -0.288675134594813 0 255 255 255 255
|
|
||||||
0.1 -0.5773502691896258 0 255 255 255 255
|
|
||||||
1 2
|
|
||||||
1 4
|
|
||||||
3 4
|
|
|
@ -1,27 +0,0 @@
|
||||||
ply
|
|
||||||
format ascii 1.0
|
|
||||||
comment VCGLIB generated
|
|
||||||
element vertex 7
|
|
||||||
property double x
|
|
||||||
property double y
|
|
||||||
property double z
|
|
||||||
property uchar red
|
|
||||||
property uchar green
|
|
||||||
property uchar blue
|
|
||||||
property uchar alpha
|
|
||||||
element face 0
|
|
||||||
property list uchar int vertex_indices
|
|
||||||
element edge 3
|
|
||||||
property int vertex1
|
|
||||||
property int vertex2
|
|
||||||
end_header
|
|
||||||
0 0 0 255 255 255 255
|
|
||||||
-0.1666666666666666 -0.2886751345948129 0 255 255 255 255
|
|
||||||
-0.3333333333333333 -0.5773502691896257 0 255 255 255 255
|
|
||||||
0 -0.8660254037844387 0 255 255 255 255
|
|
||||||
0.3333333333333333 -0.5773502691896258 0 255 255 255 255
|
|
||||||
0.1666666666666666 -0.288675134594813 0 255 255 255 255
|
|
||||||
0.1 -0.5773502691896258 0 255 255 255 255
|
|
||||||
1 2
|
|
||||||
1 4
|
|
||||||
2 3
|
|
|
@ -1,27 +0,0 @@
|
||||||
ply
|
|
||||||
format ascii 1.0
|
|
||||||
comment VCGLIB generated
|
|
||||||
element vertex 7
|
|
||||||
property double x
|
|
||||||
property double y
|
|
||||||
property double z
|
|
||||||
property uchar red
|
|
||||||
property uchar green
|
|
||||||
property uchar blue
|
|
||||||
property uchar alpha
|
|
||||||
element face 0
|
|
||||||
property list uchar int vertex_indices
|
|
||||||
element edge 3
|
|
||||||
property int vertex1
|
|
||||||
property int vertex2
|
|
||||||
end_header
|
|
||||||
0 0 0 255 255 255 255
|
|
||||||
-0.1666666666666666 -0.2886751345948129 0 255 255 255 255
|
|
||||||
-0.3333333333333333 -0.5773502691896257 0 255 255 255 255
|
|
||||||
0 -0.8660254037844387 0 255 255 255 255
|
|
||||||
0.3333333333333333 -0.5773502691896258 0 255 255 255 255
|
|
||||||
0.1666666666666666 -0.288675134594813 0 255 255 255 255
|
|
||||||
0.1 -0.5773502691896258 0 255 255 255 255
|
|
||||||
1 2
|
|
||||||
1 3
|
|
||||||
3 4
|
|
|
@ -1,27 +0,0 @@
|
||||||
ply
|
|
||||||
format ascii 1.0
|
|
||||||
comment VCGLIB generated
|
|
||||||
element vertex 7
|
|
||||||
property double x
|
|
||||||
property double y
|
|
||||||
property double z
|
|
||||||
property uchar red
|
|
||||||
property uchar green
|
|
||||||
property uchar blue
|
|
||||||
property uchar alpha
|
|
||||||
element face 0
|
|
||||||
property list uchar int vertex_indices
|
|
||||||
element edge 3
|
|
||||||
property int vertex1
|
|
||||||
property int vertex2
|
|
||||||
end_header
|
|
||||||
0 0 0 255 255 255 255
|
|
||||||
-0.1666666666666666 -0.2886751345948129 0 255 255 255 255
|
|
||||||
-0.3333333333333333 -0.5773502691896257 0 255 255 255 255
|
|
||||||
0 -0.8660254037844387 0 255 255 255 255
|
|
||||||
0.3333333333333333 -0.5773502691896258 0 255 255 255 255
|
|
||||||
0.1666666666666666 -0.288675134594813 0 255 255 255 255
|
|
||||||
0.1 -0.5773502691896258 0 255 255 255 255
|
|
||||||
1 2
|
|
||||||
1 3
|
|
||||||
1 4
|
|
|
@ -1,27 +0,0 @@
|
||||||
ply
|
|
||||||
format ascii 1.0
|
|
||||||
comment VCGLIB generated
|
|
||||||
element vertex 7
|
|
||||||
property double x
|
|
||||||
property double y
|
|
||||||
property double z
|
|
||||||
property uchar red
|
|
||||||
property uchar green
|
|
||||||
property uchar blue
|
|
||||||
property uchar alpha
|
|
||||||
element face 0
|
|
||||||
property list uchar int vertex_indices
|
|
||||||
element edge 3
|
|
||||||
property int vertex1
|
|
||||||
property int vertex2
|
|
||||||
end_header
|
|
||||||
0 0 0 255 255 255 255
|
|
||||||
-0.1666666666666666 -0.2886751345948129 0 255 255 255 255
|
|
||||||
-0.3333333333333333 -0.5773502691896257 0 255 255 255 255
|
|
||||||
0 -0.8660254037844387 0 255 255 255 255
|
|
||||||
0.3333333333333333 -0.5773502691896258 0 255 255 255 255
|
|
||||||
0.1666666666666666 -0.288675134594813 0 255 255 255 255
|
|
||||||
0.1 -0.5773502691896258 0 255 255 255 255
|
|
||||||
0 6
|
|
||||||
3 4
|
|
||||||
4 6
|
|
|
@ -1,27 +0,0 @@
|
||||||
ply
|
|
||||||
format ascii 1.0
|
|
||||||
comment VCGLIB generated
|
|
||||||
element vertex 7
|
|
||||||
property double x
|
|
||||||
property double y
|
|
||||||
property double z
|
|
||||||
property uchar red
|
|
||||||
property uchar green
|
|
||||||
property uchar blue
|
|
||||||
property uchar alpha
|
|
||||||
element face 0
|
|
||||||
property list uchar int vertex_indices
|
|
||||||
element edge 3
|
|
||||||
property int vertex1
|
|
||||||
property int vertex2
|
|
||||||
end_header
|
|
||||||
0 0 0 255 255 255 255
|
|
||||||
-0.1666666666666666 -0.2886751345948129 0 255 255 255 255
|
|
||||||
-0.3333333333333333 -0.5773502691896257 0 255 255 255 255
|
|
||||||
0 -0.8660254037844387 0 255 255 255 255
|
|
||||||
0.3333333333333333 -0.5773502691896258 0 255 255 255 255
|
|
||||||
0.1666666666666666 -0.288675134594813 0 255 255 255 255
|
|
||||||
0.1 -0.5773502691896258 0 255 255 255 255
|
|
||||||
0 6
|
|
||||||
2 6
|
|
||||||
3 4
|
|
|
@ -1,27 +0,0 @@
|
||||||
ply
|
|
||||||
format ascii 1.0
|
|
||||||
comment VCGLIB generated
|
|
||||||
element vertex 7
|
|
||||||
property double x
|
|
||||||
property double y
|
|
||||||
property double z
|
|
||||||
property uchar red
|
|
||||||
property uchar green
|
|
||||||
property uchar blue
|
|
||||||
property uchar alpha
|
|
||||||
element face 0
|
|
||||||
property list uchar int vertex_indices
|
|
||||||
element edge 3
|
|
||||||
property int vertex1
|
|
||||||
property int vertex2
|
|
||||||
end_header
|
|
||||||
0 0 0 255 255 255 255
|
|
||||||
-0.1666666666666666 -0.2886751345948129 0 255 255 255 255
|
|
||||||
-0.3333333333333333 -0.5773502691896257 0 255 255 255 255
|
|
||||||
0 -0.8660254037844387 0 255 255 255 255
|
|
||||||
0.3333333333333333 -0.5773502691896258 0 255 255 255 255
|
|
||||||
0.1666666666666666 -0.288675134594813 0 255 255 255 255
|
|
||||||
0.1 -0.5773502691896258 0 255 255 255 255
|
|
||||||
2 4
|
|
||||||
3 6
|
|
||||||
4 6
|
|
|
@ -1,27 +0,0 @@
|
||||||
ply
|
|
||||||
format ascii 1.0
|
|
||||||
comment VCGLIB generated
|
|
||||||
element vertex 7
|
|
||||||
property double x
|
|
||||||
property double y
|
|
||||||
property double z
|
|
||||||
property uchar red
|
|
||||||
property uchar green
|
|
||||||
property uchar blue
|
|
||||||
property uchar alpha
|
|
||||||
element face 0
|
|
||||||
property list uchar int vertex_indices
|
|
||||||
element edge 3
|
|
||||||
property int vertex1
|
|
||||||
property int vertex2
|
|
||||||
end_header
|
|
||||||
0 0 0 255 255 255 255
|
|
||||||
-0.1666666666666666 -0.2886751345948129 0 255 255 255 255
|
|
||||||
-0.3333333333333333 -0.5773502691896257 0 255 255 255 255
|
|
||||||
0 -0.8660254037844387 0 255 255 255 255
|
|
||||||
0.3333333333333333 -0.5773502691896258 0 255 255 255 255
|
|
||||||
0.1666666666666666 -0.288675134594813 0 255 255 255 255
|
|
||||||
0.1 -0.5773502691896258 0 255 255 255 255
|
|
||||||
0 6
|
|
||||||
2 3
|
|
||||||
4 6
|
|
|
@ -1,27 +0,0 @@
|
||||||
ply
|
|
||||||
format ascii 1.0
|
|
||||||
comment VCGLIB generated
|
|
||||||
element vertex 7
|
|
||||||
property double x
|
|
||||||
property double y
|
|
||||||
property double z
|
|
||||||
property uchar red
|
|
||||||
property uchar green
|
|
||||||
property uchar blue
|
|
||||||
property uchar alpha
|
|
||||||
element face 0
|
|
||||||
property list uchar int vertex_indices
|
|
||||||
element edge 3
|
|
||||||
property int vertex1
|
|
||||||
property int vertex2
|
|
||||||
end_header
|
|
||||||
0 0 0 255 255 255 255
|
|
||||||
-0.1666666666666666 -0.2886751345948129 0 255 255 255 255
|
|
||||||
-0.3333333333333333 -0.5773502691896257 0 255 255 255 255
|
|
||||||
0 -0.8660254037844387 0 255 255 255 255
|
|
||||||
0.3333333333333333 -0.5773502691896258 0 255 255 255 255
|
|
||||||
0.1666666666666666 -0.288675134594813 0 255 255 255 255
|
|
||||||
0.1 -0.5773502691896258 0 255 255 255 255
|
|
||||||
0 6
|
|
||||||
2 3
|
|
||||||
2 6
|
|
|
@ -1,27 +0,0 @@
|
||||||
ply
|
|
||||||
format ascii 1.0
|
|
||||||
comment VCGLIB generated
|
|
||||||
element vertex 7
|
|
||||||
property double x
|
|
||||||
property double y
|
|
||||||
property double z
|
|
||||||
property uchar red
|
|
||||||
property uchar green
|
|
||||||
property uchar blue
|
|
||||||
property uchar alpha
|
|
||||||
element face 0
|
|
||||||
property list uchar int vertex_indices
|
|
||||||
element edge 3
|
|
||||||
property int vertex1
|
|
||||||
property int vertex2
|
|
||||||
end_header
|
|
||||||
0 0 0 255 255 255 255
|
|
||||||
-0.1666666666666666 -0.2886751345948129 0 255 255 255 255
|
|
||||||
-0.3333333333333333 -0.5773502691896257 0 255 255 255 255
|
|
||||||
0 -0.8660254037844387 0 255 255 255 255
|
|
||||||
0.3333333333333333 -0.5773502691896258 0 255 255 255 255
|
|
||||||
0.1666666666666666 -0.288675134594813 0 255 255 255 255
|
|
||||||
0.1 -0.5773502691896258 0 255 255 255 255
|
|
||||||
0 6
|
|
||||||
1 3
|
|
||||||
5 6
|
|
|
@ -1,27 +0,0 @@
|
||||||
ply
|
|
||||||
format ascii 1.0
|
|
||||||
comment VCGLIB generated
|
|
||||||
element vertex 7
|
|
||||||
property double x
|
|
||||||
property double y
|
|
||||||
property double z
|
|
||||||
property uchar red
|
|
||||||
property uchar green
|
|
||||||
property uchar blue
|
|
||||||
property uchar alpha
|
|
||||||
element face 0
|
|
||||||
property list uchar int vertex_indices
|
|
||||||
element edge 3
|
|
||||||
property int vertex1
|
|
||||||
property int vertex2
|
|
||||||
end_header
|
|
||||||
0 0 0 255 255 255 255
|
|
||||||
-0.1666666666666666 -0.2886751345948129 0 255 255 255 255
|
|
||||||
-0.3333333333333333 -0.5773502691896257 0 255 255 255 255
|
|
||||||
0 -0.8660254037844387 0 255 255 255 255
|
|
||||||
0.3333333333333333 -0.5773502691896258 0 255 255 255 255
|
|
||||||
0.1666666666666666 -0.288675134594813 0 255 255 255 255
|
|
||||||
0.1 -0.5773502691896258 0 255 255 255 255
|
|
||||||
0 6
|
|
||||||
1 3
|
|
||||||
1 6
|
|
|
@ -1,27 +0,0 @@
|
||||||
ply
|
|
||||||
format ascii 1.0
|
|
||||||
comment VCGLIB generated
|
|
||||||
element vertex 7
|
|
||||||
property double x
|
|
||||||
property double y
|
|
||||||
property double z
|
|
||||||
property uchar red
|
|
||||||
property uchar green
|
|
||||||
property uchar blue
|
|
||||||
property uchar alpha
|
|
||||||
element face 0
|
|
||||||
property list uchar int vertex_indices
|
|
||||||
element edge 3
|
|
||||||
property int vertex1
|
|
||||||
property int vertex2
|
|
||||||
end_header
|
|
||||||
0 0 0 255 255 255 255
|
|
||||||
-0.1666666666666666 -0.2886751345948129 0 255 255 255 255
|
|
||||||
-0.3333333333333333 -0.5773502691896257 0 255 255 255 255
|
|
||||||
0 -0.8660254037844387 0 255 255 255 255
|
|
||||||
0.3333333333333333 -0.5773502691896258 0 255 255 255 255
|
|
||||||
0.1666666666666666 -0.288675134594813 0 255 255 255 255
|
|
||||||
0.1 -0.5773502691896258 0 255 255 255 255
|
|
||||||
2 4
|
|
||||||
2 6
|
|
||||||
3 6
|
|
|
@ -1,27 +0,0 @@
|
||||||
ply
|
|
||||||
format ascii 1.0
|
|
||||||
comment VCGLIB generated
|
|
||||||
element vertex 7
|
|
||||||
property double x
|
|
||||||
property double y
|
|
||||||
property double z
|
|
||||||
property uchar red
|
|
||||||
property uchar green
|
|
||||||
property uchar blue
|
|
||||||
property uchar alpha
|
|
||||||
element face 0
|
|
||||||
property list uchar int vertex_indices
|
|
||||||
element edge 3
|
|
||||||
property int vertex1
|
|
||||||
property int vertex2
|
|
||||||
end_header
|
|
||||||
0 0 0 255 255 255 255
|
|
||||||
-0.1666666666666666 -0.2886751345948129 0 255 255 255 255
|
|
||||||
-0.3333333333333333 -0.5773502691896257 0 255 255 255 255
|
|
||||||
0 -0.8660254037844387 0 255 255 255 255
|
|
||||||
0.3333333333333333 -0.5773502691896258 0 255 255 255 255
|
|
||||||
0.1666666666666666 -0.288675134594813 0 255 255 255 255
|
|
||||||
0.1 -0.5773502691896258 0 255 255 255 255
|
|
||||||
0 3
|
|
||||||
2 3
|
|
||||||
3 4
|
|
|
@ -1,27 +0,0 @@
|
||||||
ply
|
|
||||||
format ascii 1.0
|
|
||||||
comment VCGLIB generated
|
|
||||||
element vertex 7
|
|
||||||
property double x
|
|
||||||
property double y
|
|
||||||
property double z
|
|
||||||
property uchar red
|
|
||||||
property uchar green
|
|
||||||
property uchar blue
|
|
||||||
property uchar alpha
|
|
||||||
element face 0
|
|
||||||
property list uchar int vertex_indices
|
|
||||||
element edge 3
|
|
||||||
property int vertex1
|
|
||||||
property int vertex2
|
|
||||||
end_header
|
|
||||||
0 0 0 255 255 255 255
|
|
||||||
-0.1666666666666666 -0.2886751345948129 0 255 255 255 255
|
|
||||||
-0.3333333333333333 -0.5773502691896257 0 255 255 255 255
|
|
||||||
0 -0.8660254037844387 0 255 255 255 255
|
|
||||||
0.3333333333333333 -0.5773502691896258 0 255 255 255 255
|
|
||||||
0.1666666666666666 -0.288675134594813 0 255 255 255 255
|
|
||||||
0.1 -0.5773502691896258 0 255 255 255 255
|
|
||||||
0 3
|
|
||||||
1 3
|
|
||||||
3 5
|
|
|
@ -1,27 +0,0 @@
|
||||||
ply
|
|
||||||
format ascii 1.0
|
|
||||||
comment VCGLIB generated
|
|
||||||
element vertex 7
|
|
||||||
property double x
|
|
||||||
property double y
|
|
||||||
property double z
|
|
||||||
property uchar red
|
|
||||||
property uchar green
|
|
||||||
property uchar blue
|
|
||||||
property uchar alpha
|
|
||||||
element face 0
|
|
||||||
property list uchar int vertex_indices
|
|
||||||
element edge 3
|
|
||||||
property int vertex1
|
|
||||||
property int vertex2
|
|
||||||
end_header
|
|
||||||
0 0 0 255 255 255 255
|
|
||||||
-0.1666666666666666 -0.2886751345948129 0 255 255 255 255
|
|
||||||
-0.3333333333333333 -0.5773502691896257 0 255 255 255 255
|
|
||||||
0 -0.8660254037844387 0 255 255 255 255
|
|
||||||
0.3333333333333333 -0.5773502691896258 0 255 255 255 255
|
|
||||||
0.1666666666666666 -0.288675134594813 0 255 255 255 255
|
|
||||||
0.1 -0.5773502691896258 0 255 255 255 255
|
|
||||||
0 3
|
|
||||||
0 6
|
|
||||||
3 6
|
|
|
@ -1,27 +0,0 @@
|
||||||
ply
|
|
||||||
format ascii 1.0
|
|
||||||
comment VCGLIB generated
|
|
||||||
element vertex 7
|
|
||||||
property double x
|
|
||||||
property double y
|
|
||||||
property double z
|
|
||||||
property uchar red
|
|
||||||
property uchar green
|
|
||||||
property uchar blue
|
|
||||||
property uchar alpha
|
|
||||||
element face 0
|
|
||||||
property list uchar int vertex_indices
|
|
||||||
element edge 3
|
|
||||||
property int vertex1
|
|
||||||
property int vertex2
|
|
||||||
end_header
|
|
||||||
0 0 0 255 255 255 255
|
|
||||||
-0.1666666666666666 -0.2886751345948129 0 255 255 255 255
|
|
||||||
-0.3333333333333333 -0.5773502691896257 0 255 255 255 255
|
|
||||||
0 -0.8660254037844387 0 255 255 255 255
|
|
||||||
0.3333333333333333 -0.5773502691896258 0 255 255 255 255
|
|
||||||
0.1666666666666666 -0.288675134594813 0 255 255 255 255
|
|
||||||
0.1 -0.5773502691896258 0 255 255 255 255
|
|
||||||
0 1
|
|
||||||
3 6
|
|
||||||
5 6
|
|
|
@ -1,27 +0,0 @@
|
||||||
ply
|
|
||||||
format ascii 1.0
|
|
||||||
comment VCGLIB generated
|
|
||||||
element vertex 7
|
|
||||||
property double x
|
|
||||||
property double y
|
|
||||||
property double z
|
|
||||||
property uchar red
|
|
||||||
property uchar green
|
|
||||||
property uchar blue
|
|
||||||
property uchar alpha
|
|
||||||
element face 0
|
|
||||||
property list uchar int vertex_indices
|
|
||||||
element edge 3
|
|
||||||
property int vertex1
|
|
||||||
property int vertex2
|
|
||||||
end_header
|
|
||||||
0 0 0 255 255 255 255
|
|
||||||
-0.1666666666666666 -0.2886751345948129 0 255 255 255 255
|
|
||||||
-0.3333333333333333 -0.5773502691896257 0 255 255 255 255
|
|
||||||
0 -0.8660254037844387 0 255 255 255 255
|
|
||||||
0.3333333333333333 -0.5773502691896258 0 255 255 255 255
|
|
||||||
0.1666666666666666 -0.288675134594813 0 255 255 255 255
|
|
||||||
0.1 -0.5773502691896258 0 255 255 255 255
|
|
||||||
0 1
|
|
||||||
2 5
|
|
||||||
3 4
|
|
|
@ -1,27 +0,0 @@
|
||||||
ply
|
|
||||||
format ascii 1.0
|
|
||||||
comment VCGLIB generated
|
|
||||||
element vertex 7
|
|
||||||
property double x
|
|
||||||
property double y
|
|
||||||
property double z
|
|
||||||
property uchar red
|
|
||||||
property uchar green
|
|
||||||
property uchar blue
|
|
||||||
property uchar alpha
|
|
||||||
element face 0
|
|
||||||
property list uchar int vertex_indices
|
|
||||||
element edge 3
|
|
||||||
property int vertex1
|
|
||||||
property int vertex2
|
|
||||||
end_header
|
|
||||||
0 0 0 255 255 255 255
|
|
||||||
-0.1666666666666666 -0.2886751345948129 0 255 255 255 255
|
|
||||||
-0.3333333333333333 -0.5773502691896257 0 255 255 255 255
|
|
||||||
0 -0.8660254037844387 0 255 255 255 255
|
|
||||||
0.3333333333333333 -0.5773502691896258 0 255 255 255 255
|
|
||||||
0.1666666666666666 -0.288675134594813 0 255 255 255 255
|
|
||||||
0.1 -0.5773502691896258 0 255 255 255 255
|
|
||||||
2 3
|
|
||||||
3 6
|
|
||||||
4 6
|
|
|
@ -1,27 +0,0 @@
|
||||||
ply
|
|
||||||
format ascii 1.0
|
|
||||||
comment VCGLIB generated
|
|
||||||
element vertex 7
|
|
||||||
property double x
|
|
||||||
property double y
|
|
||||||
property double z
|
|
||||||
property uchar red
|
|
||||||
property uchar green
|
|
||||||
property uchar blue
|
|
||||||
property uchar alpha
|
|
||||||
element face 0
|
|
||||||
property list uchar int vertex_indices
|
|
||||||
element edge 3
|
|
||||||
property int vertex1
|
|
||||||
property int vertex2
|
|
||||||
end_header
|
|
||||||
0 0 0 255 255 255 255
|
|
||||||
-0.1666666666666666 -0.2886751345948129 0 255 255 255 255
|
|
||||||
-0.3333333333333333 -0.5773502691896257 0 255 255 255 255
|
|
||||||
0 -0.8660254037844387 0 255 255 255 255
|
|
||||||
0.3333333333333333 -0.5773502691896258 0 255 255 255 255
|
|
||||||
0.1666666666666666 -0.288675134594813 0 255 255 255 255
|
|
||||||
0.1 -0.5773502691896258 0 255 255 255 255
|
|
||||||
0 1
|
|
||||||
2 3
|
|
||||||
2 5
|
|
|
@ -1,27 +0,0 @@
|
||||||
ply
|
|
||||||
format ascii 1.0
|
|
||||||
comment VCGLIB generated
|
|
||||||
element vertex 7
|
|
||||||
property double x
|
|
||||||
property double y
|
|
||||||
property double z
|
|
||||||
property uchar red
|
|
||||||
property uchar green
|
|
||||||
property uchar blue
|
|
||||||
property uchar alpha
|
|
||||||
element face 0
|
|
||||||
property list uchar int vertex_indices
|
|
||||||
element edge 3
|
|
||||||
property int vertex1
|
|
||||||
property int vertex2
|
|
||||||
end_header
|
|
||||||
0 0 0 255 255 255 255
|
|
||||||
-0.1666666666666666 -0.2886751345948129 0 255 255 255 255
|
|
||||||
-0.3333333333333333 -0.5773502691896257 0 255 255 255 255
|
|
||||||
0 -0.8660254037844387 0 255 255 255 255
|
|
||||||
0.3333333333333333 -0.5773502691896258 0 255 255 255 255
|
|
||||||
0.1666666666666666 -0.288675134594813 0 255 255 255 255
|
|
||||||
0.1 -0.5773502691896258 0 255 255 255 255
|
|
||||||
0 1
|
|
||||||
1 6
|
|
||||||
3 6
|
|
|
@ -1,27 +0,0 @@
|
||||||
ply
|
|
||||||
format ascii 1.0
|
|
||||||
comment VCGLIB generated
|
|
||||||
element vertex 7
|
|
||||||
property double x
|
|
||||||
property double y
|
|
||||||
property double z
|
|
||||||
property uchar red
|
|
||||||
property uchar green
|
|
||||||
property uchar blue
|
|
||||||
property uchar alpha
|
|
||||||
element face 0
|
|
||||||
property list uchar int vertex_indices
|
|
||||||
element edge 3
|
|
||||||
property int vertex1
|
|
||||||
property int vertex2
|
|
||||||
end_header
|
|
||||||
0 0 0 255 255 255 255
|
|
||||||
-0.1666666666666666 -0.2886751345948129 0 255 255 255 255
|
|
||||||
-0.3333333333333333 -0.5773502691896257 0 255 255 255 255
|
|
||||||
0 -0.8660254037844387 0 255 255 255 255
|
|
||||||
0.3333333333333333 -0.5773502691896258 0 255 255 255 255
|
|
||||||
0.1666666666666666 -0.288675134594813 0 255 255 255 255
|
|
||||||
0.1 -0.5773502691896258 0 255 255 255 255
|
|
||||||
0 1
|
|
||||||
1 5
|
|
||||||
3 5
|
|
|
@ -1,27 +0,0 @@
|
||||||
ply
|
|
||||||
format ascii 1.0
|
|
||||||
comment VCGLIB generated
|
|
||||||
element vertex 7
|
|
||||||
property double x
|
|
||||||
property double y
|
|
||||||
property double z
|
|
||||||
property uchar red
|
|
||||||
property uchar green
|
|
||||||
property uchar blue
|
|
||||||
property uchar alpha
|
|
||||||
element face 0
|
|
||||||
property list uchar int vertex_indices
|
|
||||||
element edge 3
|
|
||||||
property int vertex1
|
|
||||||
property int vertex2
|
|
||||||
end_header
|
|
||||||
0 0 0 255 255 255 255
|
|
||||||
-0.1666666666666666 -0.2886751345948129 0 255 255 255 255
|
|
||||||
-0.3333333333333333 -0.5773502691896257 0 255 255 255 255
|
|
||||||
0 -0.8660254037844387 0 255 255 255 255
|
|
||||||
0.3333333333333333 -0.5773502691896258 0 255 255 255 255
|
|
||||||
0.1666666666666666 -0.288675134594813 0 255 255 255 255
|
|
||||||
0.1 -0.5773502691896258 0 255 255 255 255
|
|
||||||
0 1
|
|
||||||
1 4
|
|
||||||
3 4
|
|
|
@ -1,27 +0,0 @@
|
||||||
ply
|
|
||||||
format ascii 1.0
|
|
||||||
comment VCGLIB generated
|
|
||||||
element vertex 7
|
|
||||||
property double x
|
|
||||||
property double y
|
|
||||||
property double z
|
|
||||||
property uchar red
|
|
||||||
property uchar green
|
|
||||||
property uchar blue
|
|
||||||
property uchar alpha
|
|
||||||
element face 0
|
|
||||||
property list uchar int vertex_indices
|
|
||||||
element edge 3
|
|
||||||
property int vertex1
|
|
||||||
property int vertex2
|
|
||||||
end_header
|
|
||||||
0 0 0 255 255 255 255
|
|
||||||
-0.1666666666666666 -0.2886751345948129 0 255 255 255 255
|
|
||||||
-0.3333333333333333 -0.5773502691896257 0 255 255 255 255
|
|
||||||
0 -0.8660254037844387 0 255 255 255 255
|
|
||||||
0.3333333333333333 -0.5773502691896258 0 255 255 255 255
|
|
||||||
0.1666666666666666 -0.288675134594813 0 255 255 255 255
|
|
||||||
0.1 -0.5773502691896258 0 255 255 255 255
|
|
||||||
0 1
|
|
||||||
1 4
|
|
||||||
2 3
|
|
|
@ -1,27 +0,0 @@
|
||||||
ply
|
|
||||||
format ascii 1.0
|
|
||||||
comment VCGLIB generated
|
|
||||||
element vertex 7
|
|
||||||
property double x
|
|
||||||
property double y
|
|
||||||
property double z
|
|
||||||
property uchar red
|
|
||||||
property uchar green
|
|
||||||
property uchar blue
|
|
||||||
property uchar alpha
|
|
||||||
element face 0
|
|
||||||
property list uchar int vertex_indices
|
|
||||||
element edge 3
|
|
||||||
property int vertex1
|
|
||||||
property int vertex2
|
|
||||||
end_header
|
|
||||||
0 0 0 255 255 255 255
|
|
||||||
-0.1666666666666666 -0.2886751345948129 0 255 255 255 255
|
|
||||||
-0.3333333333333333 -0.5773502691896257 0 255 255 255 255
|
|
||||||
0 -0.8660254037844387 0 255 255 255 255
|
|
||||||
0.3333333333333333 -0.5773502691896258 0 255 255 255 255
|
|
||||||
0.1666666666666666 -0.288675134594813 0 255 255 255 255
|
|
||||||
0.1 -0.5773502691896258 0 255 255 255 255
|
|
||||||
0 1
|
|
||||||
1 3
|
|
||||||
3 5
|
|
|
@ -1,27 +0,0 @@
|
||||||
ply
|
|
||||||
format ascii 1.0
|
|
||||||
comment VCGLIB generated
|
|
||||||
element vertex 7
|
|
||||||
property double x
|
|
||||||
property double y
|
|
||||||
property double z
|
|
||||||
property uchar red
|
|
||||||
property uchar green
|
|
||||||
property uchar blue
|
|
||||||
property uchar alpha
|
|
||||||
element face 0
|
|
||||||
property list uchar int vertex_indices
|
|
||||||
element edge 3
|
|
||||||
property int vertex1
|
|
||||||
property int vertex2
|
|
||||||
end_header
|
|
||||||
0 0 0 255 255 255 255
|
|
||||||
-0.1666666666666666 -0.2886751345948129 0 255 255 255 255
|
|
||||||
-0.3333333333333333 -0.5773502691896257 0 255 255 255 255
|
|
||||||
0 -0.8660254037844387 0 255 255 255 255
|
|
||||||
0.3333333333333333 -0.5773502691896258 0 255 255 255 255
|
|
||||||
0.1666666666666666 -0.288675134594813 0 255 255 255 255
|
|
||||||
0.1 -0.5773502691896258 0 255 255 255 255
|
|
||||||
0 1
|
|
||||||
1 3
|
|
||||||
1 5
|
|
|
@ -1,27 +0,0 @@
|
||||||
ply
|
|
||||||
format ascii 1.0
|
|
||||||
comment VCGLIB generated
|
|
||||||
element vertex 7
|
|
||||||
property double x
|
|
||||||
property double y
|
|
||||||
property double z
|
|
||||||
property uchar red
|
|
||||||
property uchar green
|
|
||||||
property uchar blue
|
|
||||||
property uchar alpha
|
|
||||||
element face 0
|
|
||||||
property list uchar int vertex_indices
|
|
||||||
element edge 3
|
|
||||||
property int vertex1
|
|
||||||
property int vertex2
|
|
||||||
end_header
|
|
||||||
0 0 0 255 255 255 255
|
|
||||||
-0.1666666666666666 -0.2886751345948129 0 255 255 255 255
|
|
||||||
-0.3333333333333333 -0.5773502691896257 0 255 255 255 255
|
|
||||||
0 -0.8660254037844387 0 255 255 255 255
|
|
||||||
0.3333333333333333 -0.5773502691896258 0 255 255 255 255
|
|
||||||
0.1666666666666666 -0.288675134594813 0 255 255 255 255
|
|
||||||
0.1 -0.5773502691896258 0 255 255 255 255
|
|
||||||
0 1
|
|
||||||
1 2
|
|
||||||
3 4
|
|
|
@ -1,27 +0,0 @@
|
||||||
ply
|
|
||||||
format ascii 1.0
|
|
||||||
comment VCGLIB generated
|
|
||||||
element vertex 7
|
|
||||||
property double x
|
|
||||||
property double y
|
|
||||||
property double z
|
|
||||||
property uchar red
|
|
||||||
property uchar green
|
|
||||||
property uchar blue
|
|
||||||
property uchar alpha
|
|
||||||
element face 0
|
|
||||||
property list uchar int vertex_indices
|
|
||||||
element edge 3
|
|
||||||
property int vertex1
|
|
||||||
property int vertex2
|
|
||||||
end_header
|
|
||||||
0 0 0 255 255 255 255
|
|
||||||
-0.1666666666666666 -0.2886751345948129 0 255 255 255 255
|
|
||||||
-0.3333333333333333 -0.5773502691896257 0 255 255 255 255
|
|
||||||
0 -0.8660254037844387 0 255 255 255 255
|
|
||||||
0.3333333333333333 -0.5773502691896258 0 255 255 255 255
|
|
||||||
0.1666666666666666 -0.288675134594813 0 255 255 255 255
|
|
||||||
0.1 -0.5773502691896258 0 255 255 255 255
|
|
||||||
0 1
|
|
||||||
1 2
|
|
||||||
2 3
|
|
|
@ -1,27 +0,0 @@
|
||||||
ply
|
|
||||||
format ascii 1.0
|
|
||||||
comment VCGLIB generated
|
|
||||||
element vertex 7
|
|
||||||
property double x
|
|
||||||
property double y
|
|
||||||
property double z
|
|
||||||
property uchar red
|
|
||||||
property uchar green
|
|
||||||
property uchar blue
|
|
||||||
property uchar alpha
|
|
||||||
element face 0
|
|
||||||
property list uchar int vertex_indices
|
|
||||||
element edge 3
|
|
||||||
property int vertex1
|
|
||||||
property int vertex2
|
|
||||||
end_header
|
|
||||||
0 0 0 255 255 255 255
|
|
||||||
-0.1666666666666666 -0.2886751345948129 0 255 255 255 255
|
|
||||||
-0.3333333333333333 -0.5773502691896257 0 255 255 255 255
|
|
||||||
0 -0.8660254037844387 0 255 255 255 255
|
|
||||||
0.3333333333333333 -0.5773502691896258 0 255 255 255 255
|
|
||||||
0.1666666666666666 -0.288675134594813 0 255 255 255 255
|
|
||||||
0.1 -0.5773502691896258 0 255 255 255 255
|
|
||||||
0 1
|
|
||||||
0 3
|
|
||||||
3 5
|
|
|
@ -1,27 +0,0 @@
|
||||||
ply
|
|
||||||
format ascii 1.0
|
|
||||||
comment VCGLIB generated
|
|
||||||
element vertex 7
|
|
||||||
property double x
|
|
||||||
property double y
|
|
||||||
property double z
|
|
||||||
property uchar red
|
|
||||||
property uchar green
|
|
||||||
property uchar blue
|
|
||||||
property uchar alpha
|
|
||||||
element face 0
|
|
||||||
property list uchar int vertex_indices
|
|
||||||
element edge 3
|
|
||||||
property int vertex1
|
|
||||||
property int vertex2
|
|
||||||
end_header
|
|
||||||
0 0 0 255 255 255 255
|
|
||||||
-0.1666666666666666 -0.2886751345948129 0 255 255 255 255
|
|
||||||
-0.3333333333333333 -0.5773502691896257 0 255 255 255 255
|
|
||||||
0 -0.8660254037844387 0 255 255 255 255
|
|
||||||
0.3333333333333333 -0.5773502691896258 0 255 255 255 255
|
|
||||||
0.1666666666666666 -0.288675134594813 0 255 255 255 255
|
|
||||||
0.1 -0.5773502691896258 0 255 255 255 255
|
|
||||||
0 1
|
|
||||||
0 3
|
|
||||||
1 3
|
|
|
@ -1,27 +0,0 @@
|
||||||
ply
|
|
||||||
format ascii 1.0
|
|
||||||
comment VCGLIB generated
|
|
||||||
element vertex 7
|
|
||||||
property double x
|
|
||||||
property double y
|
|
||||||
property double z
|
|
||||||
property uchar red
|
|
||||||
property uchar green
|
|
||||||
property uchar blue
|
|
||||||
property uchar alpha
|
|
||||||
element face 0
|
|
||||||
property list uchar int vertex_indices
|
|
||||||
element edge 3
|
|
||||||
property int vertex1
|
|
||||||
property int vertex2
|
|
||||||
end_header
|
|
||||||
0 0 0 255 255 255 255
|
|
||||||
-0.1666666666666666 -0.2886751345948129 0 255 255 255 255
|
|
||||||
-0.3333333333333333 -0.5773502691896257 0 255 255 255 255
|
|
||||||
0 -0.8660254037844387 0 255 255 255 255
|
|
||||||
0.3333333333333333 -0.5773502691896258 0 255 255 255 255
|
|
||||||
0.1666666666666666 -0.288675134594813 0 255 255 255 255
|
|
||||||
0.1 -0.5773502691896258 0 255 255 255 255
|
|
||||||
2 3
|
|
||||||
2 6
|
|
||||||
4 6
|
|
|
@ -1,27 +0,0 @@
|
||||||
ply
|
|
||||||
format ascii 1.0
|
|
||||||
comment VCGLIB generated
|
|
||||||
element vertex 7
|
|
||||||
property double x
|
|
||||||
property double y
|
|
||||||
property double z
|
|
||||||
property uchar red
|
|
||||||
property uchar green
|
|
||||||
property uchar blue
|
|
||||||
property uchar alpha
|
|
||||||
element face 0
|
|
||||||
property list uchar int vertex_indices
|
|
||||||
element edge 3
|
|
||||||
property int vertex1
|
|
||||||
property int vertex2
|
|
||||||
end_header
|
|
||||||
0 0 0 255 255 255 255
|
|
||||||
-0.1666666666666666 -0.2886751345948129 0 255 255 255 255
|
|
||||||
-0.3333333333333333 -0.5773502691896257 0 255 255 255 255
|
|
||||||
0 -0.8660254037844387 0 255 255 255 255
|
|
||||||
0.3333333333333333 -0.5773502691896258 0 255 255 255 255
|
|
||||||
0.1666666666666666 -0.288675134594813 0 255 255 255 255
|
|
||||||
0.1 -0.5773502691896258 0 255 255 255 255
|
|
||||||
2 3
|
|
||||||
2 4
|
|
||||||
3 4
|
|
|
@ -1,27 +0,0 @@
|
||||||
ply
|
|
||||||
format ascii 1.0
|
|
||||||
comment VCGLIB generated
|
|
||||||
element vertex 7
|
|
||||||
property double x
|
|
||||||
property double y
|
|
||||||
property double z
|
|
||||||
property uchar red
|
|
||||||
property uchar green
|
|
||||||
property uchar blue
|
|
||||||
property uchar alpha
|
|
||||||
element face 0
|
|
||||||
property list uchar int vertex_indices
|
|
||||||
element edge 3
|
|
||||||
property int vertex1
|
|
||||||
property int vertex2
|
|
||||||
end_header
|
|
||||||
0 0 0 255 255 255 255
|
|
||||||
-0.1666666666666666 -0.2886751345948129 0 255 255 255 255
|
|
||||||
-0.3333333333333333 -0.5773502691896257 0 255 255 255 255
|
|
||||||
0 -0.8660254037844387 0 255 255 255 255
|
|
||||||
0.3333333333333333 -0.5773502691896258 0 255 255 255 255
|
|
||||||
0.1666666666666666 -0.288675134594813 0 255 255 255 255
|
|
||||||
0.1 -0.5773502691896258 0 255 255 255 255
|
|
||||||
1 6
|
|
||||||
3 6
|
|
||||||
5 6
|
|
|
@ -439,6 +439,20 @@ ReducedModelOptimizer::ReducedModelOptimizer(const std::vector<size_t> &numberOf
|
||||||
{
|
{
|
||||||
FlatPatternTopology::constructNodeToSlotMap(numberOfNodesPerSlot, nodeToSlot);
|
FlatPatternTopology::constructNodeToSlotMap(numberOfNodesPerSlot, nodeToSlot);
|
||||||
FlatPatternTopology::constructSlotToNodeMap(nodeToSlot, slotToNode);
|
FlatPatternTopology::constructSlotToNodeMap(nodeToSlot, slotToNode);
|
||||||
|
constructBaseScenarioFunctions.resize(BaseSimulationScenario::NumberOfBaseSimulationScenarios);
|
||||||
|
scenarioIsSymmetrical.resize(BaseSimulationScenario::NumberOfBaseSimulationScenarios);
|
||||||
|
constructBaseScenarioFunctions[BaseSimulationScenario::Axial] = &constructAxialSimulationScenario;
|
||||||
|
scenarioIsSymmetrical[BaseSimulationScenario::Axial] = false;
|
||||||
|
constructBaseScenarioFunctions[BaseSimulationScenario::Shear] = &constructShearSimulationScenario;
|
||||||
|
scenarioIsSymmetrical[BaseSimulationScenario::Shear] = false;
|
||||||
|
constructBaseScenarioFunctions[BaseSimulationScenario::Bending]
|
||||||
|
= &constructBendingSimulationScenario;
|
||||||
|
scenarioIsSymmetrical[BaseSimulationScenario::Bending] = true;
|
||||||
|
constructBaseScenarioFunctions[BaseSimulationScenario::Dome] = &constructDomeSimulationScenario;
|
||||||
|
scenarioIsSymmetrical[BaseSimulationScenario::Dome] = true;
|
||||||
|
constructBaseScenarioFunctions[BaseSimulationScenario::Saddle]
|
||||||
|
= &constructSaddleSimulationScenario;
|
||||||
|
scenarioIsSymmetrical[BaseSimulationScenario::Saddle] = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
void ReducedModelOptimizer::initializePatterns(PatternGeometry &fullPattern,
|
void ReducedModelOptimizer::initializePatterns(PatternGeometry &fullPattern,
|
||||||
|
@ -840,6 +854,57 @@ void ReducedModelOptimizer::getResults(const dlib::function_evaluation &optimiza
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
std::vector<std::pair<BaseSimulationScenario, double>>
|
||||||
|
ReducedModelOptimizer::computeFullPatternMaxSimulationForces(
|
||||||
|
const std::vector<BaseSimulationScenario> &desiredBaseSimulationScenario)
|
||||||
|
{
|
||||||
|
std::vector<std::pair<BaseSimulationScenario, double>> fullPatternMaxSimulationForces;
|
||||||
|
fullPatternMaxSimulationForces.reserve(desiredBaseSimulationScenario.size());
|
||||||
|
for (const BaseSimulationScenario &scenario : desiredBaseSimulationScenario) {
|
||||||
|
const double maxForce = computeFullPatternMaxSimulationForce(scenario);
|
||||||
|
fullPatternMaxSimulationForces.emplace_back(std::make_pair(scenario, maxForce));
|
||||||
|
}
|
||||||
|
|
||||||
|
return fullPatternMaxSimulationForces;
|
||||||
|
}
|
||||||
|
|
||||||
|
std::vector<std::pair<BaseSimulationScenario, double>>
|
||||||
|
ReducedModelOptimizer::getFullPatternMaxSimulationForces(
|
||||||
|
const std::vector<BaseSimulationScenario> &desiredBaseSimulationScenarioIndices)
|
||||||
|
{
|
||||||
|
std::vector<std::pair<BaseSimulationScenario, double>> fullPatternSimulationScenarioMaxMagnitudes;
|
||||||
|
const std::filesystem::path forceMagnitudesDirectoryPath(std::filesystem::current_path()
|
||||||
|
.parent_path()
|
||||||
|
.append("IntermediateResults")
|
||||||
|
.append("ForceMagnitudes"));
|
||||||
|
std::filesystem::path patternMaxForceMagnitudesFilePath(
|
||||||
|
std::filesystem::path(forceMagnitudesDirectoryPath)
|
||||||
|
.append(m_pFullPatternSimulationMesh->getLabel() + ".json"));
|
||||||
|
const bool fullPatternScenarioMagnitudesExist = std::filesystem::exists(
|
||||||
|
patternMaxForceMagnitudesFilePath);
|
||||||
|
if (fullPatternScenarioMagnitudesExist) {
|
||||||
|
nlohmann::json json;
|
||||||
|
std::ifstream ifs(patternMaxForceMagnitudesFilePath.string());
|
||||||
|
ifs >> json;
|
||||||
|
fullPatternSimulationScenarioMaxMagnitudes
|
||||||
|
= static_cast<std::vector<std::pair<BaseSimulationScenario, double>>>(
|
||||||
|
json.at("maxMagn"));
|
||||||
|
} else {
|
||||||
|
fullPatternSimulationScenarioMaxMagnitudes = computeFullPatternMaxSimulationForces(
|
||||||
|
desiredBaseSimulationScenarioIndices);
|
||||||
|
nlohmann::json json;
|
||||||
|
json["maxMagn"] = fullPatternSimulationScenarioMaxMagnitudes;
|
||||||
|
|
||||||
|
std::filesystem::create_directories(forceMagnitudesDirectoryPath);
|
||||||
|
std::ofstream jsonFile(patternMaxForceMagnitudesFilePath.string());
|
||||||
|
jsonFile << json;
|
||||||
|
}
|
||||||
|
assert(fullPatternSimulationScenarioMaxMagnitudes.size()
|
||||||
|
== desiredBaseSimulationScenarioIndices.size());
|
||||||
|
|
||||||
|
return fullPatternSimulationScenarioMaxMagnitudes;
|
||||||
|
}
|
||||||
|
|
||||||
void ReducedModelOptimizer::runOptimization(const Settings &settings,
|
void ReducedModelOptimizer::runOptimization(const Settings &settings,
|
||||||
ReducedPatternOptimization::Results &results)
|
ReducedPatternOptimization::Results &results)
|
||||||
{
|
{
|
||||||
|
@ -1004,27 +1069,30 @@ double fullPatternMaxSimulationForceRotationalObjective(const double &forceMagni
|
||||||
DRMSimulationModel simulator;
|
DRMSimulationModel simulator;
|
||||||
DRMSimulationModel::Settings settings;
|
DRMSimulationModel::Settings settings;
|
||||||
settings.totalExternalForcesNormPercentageTermination = 1e-2;
|
settings.totalExternalForcesNormPercentageTermination = 1e-2;
|
||||||
// settings.totalResidualForcesNormThreshold = 1e-3;
|
settings.totalTranslationalKineticEnergyThreshold = 1e-11;
|
||||||
settings.totalTranslationalKineticEnergyThreshold = 1e-10;
|
|
||||||
settings.shouldUseTranslationalKineticEnergyThreshold = true;
|
settings.shouldUseTranslationalKineticEnergyThreshold = true;
|
||||||
// settings.shouldDraw = true;
|
// settings.shouldDraw = true;
|
||||||
|
settings.useAverage = true;
|
||||||
|
|
||||||
// settings.isDebugMode = true;
|
// settings.isDebugMode = true;
|
||||||
// settings.drawingStep = 500;
|
// settings.drawingStep = 500;
|
||||||
// settings.beVerbose = true;
|
// settings.beVerbose = true;
|
||||||
// settings.debugModeStep = 200000;
|
// settings.debugModeStep = 200000;
|
||||||
// settings.shouldCreatePlots = true;
|
// settings.shouldCreatePlots = true;
|
||||||
settings.maxDRMIterations = 150000;
|
settings.maxDRMIterations = 100000;
|
||||||
SimulationResults results = simulator.executeSimulation(std::make_shared<SimulationJob>(job),
|
SimulationResults results = simulator.executeSimulation(std::make_shared<SimulationJob>(job),
|
||||||
settings);
|
settings);
|
||||||
const double &desiredRotationAngle = global.desiredMaxRotationAngle;
|
const double &desiredRotationAngle = global.desiredMaxRotationAngle;
|
||||||
|
double error;
|
||||||
if (!results.converged) {
|
if (!results.converged) {
|
||||||
return std::numeric_limits<double>::max();
|
error = std::numeric_limits<double>::max();
|
||||||
}
|
} else {
|
||||||
const double error = std::abs(
|
error = std::abs(
|
||||||
// results.displacements[global.fullPatternInterfaceViPairs[1].first].getTranslation().norm()
|
// results.displacements[global.fullPatternInterfaceViPairs[1].first].getTranslation().norm()
|
||||||
results.rotationalDisplacementQuaternion[global.interfaceViForComputingScenarioError]
|
results.rotationalDisplacementQuaternion[global.interfaceViForComputingScenarioError]
|
||||||
.angularDistance(Eigen::Quaterniond::Identity())
|
.angularDistance(Eigen::Quaterniond::Identity())
|
||||||
- desiredRotationAngle);
|
- desiredRotationAngle);
|
||||||
|
}
|
||||||
|
|
||||||
#ifdef POLYSCOPE_DEFINED
|
#ifdef POLYSCOPE_DEFINED
|
||||||
std::cout << "Force:" << forceMagnitude << " Error is:" << vcg::math::ToDeg(error) << std::endl;
|
std::cout << "Force:" << forceMagnitude << " Error is:" << vcg::math::ToDeg(error) << std::endl;
|
||||||
|
@ -1065,13 +1133,15 @@ double fullPatternMaxSimulationForceTranslationalObjective(const double &forceMa
|
||||||
SimulationResults results = simulator.executeSimulation(std::make_shared<SimulationJob>(job),
|
SimulationResults results = simulator.executeSimulation(std::make_shared<SimulationJob>(job),
|
||||||
settings);
|
settings);
|
||||||
const double &desiredDisplacementValue = global.desiredMaxDisplacementValue;
|
const double &desiredDisplacementValue = global.desiredMaxDisplacementValue;
|
||||||
|
double error;
|
||||||
if (!results.converged) {
|
if (!results.converged) {
|
||||||
return std::numeric_limits<double>::max();
|
error = std::numeric_limits<double>::max();
|
||||||
}
|
} else {
|
||||||
const double error = std::abs(
|
error = std::abs(
|
||||||
// results.displacements[global.fullPatternInterfaceViPairs[1].first].getTranslation().norm()
|
// results.displacements[global.fullPatternInterfaceViPairs[1].first].getTranslation().norm()
|
||||||
results.displacements[global.interfaceViForComputingScenarioError].getTranslation().norm()
|
results.displacements[global.interfaceViForComputingScenarioError].getTranslation().norm()
|
||||||
- desiredDisplacementValue);
|
- desiredDisplacementValue);
|
||||||
|
}
|
||||||
|
|
||||||
#ifdef POLYSCOPE_DEFINED
|
#ifdef POLYSCOPE_DEFINED
|
||||||
std::cout << "Force:" << forceMagnitude << " Error is:" << error << std::endl;
|
std::cout << "Force:" << forceMagnitude << " Error is:" << error << std::endl;
|
||||||
|
@ -1080,14 +1150,16 @@ double fullPatternMaxSimulationForceTranslationalObjective(const double &forceMa
|
||||||
return error;
|
return error;
|
||||||
}
|
}
|
||||||
|
|
||||||
double ReducedModelOptimizer::getFullPatternMaxSimulationForce(
|
double ReducedModelOptimizer::computeFullPatternMaxSimulationForce(
|
||||||
const BaseSimulationScenario &scenario, bool &wasSuccessful)
|
const BaseSimulationScenario &scenario)
|
||||||
{
|
{
|
||||||
double forceMagnitude = 1;
|
double forceMagnitude = 1;
|
||||||
const double forceMagnitudeEpsilon = 1e-2;
|
const double forceMagnitudeEpsilon = 1e-2;
|
||||||
double minimumError;
|
double minimumError;
|
||||||
double translationalOptimizationEpsilon;
|
double translationalOptimizationEpsilon;
|
||||||
dlib::function_evaluation result;
|
dlib::function_evaluation result;
|
||||||
|
bool wasSuccessful = false;
|
||||||
|
global.constructScenarioFunction = constructBaseScenarioFunctions[scenario];
|
||||||
switch (scenario) {
|
switch (scenario) {
|
||||||
case Axial:
|
case Axial:
|
||||||
global.desiredMaxDisplacementValue = 0.03
|
global.desiredMaxDisplacementValue = 0.03
|
||||||
|
@ -1129,7 +1201,7 @@ double ReducedModelOptimizer::getFullPatternMaxSimulationForce(
|
||||||
(global.baseTriangle.cP(1)
|
(global.baseTriangle.cP(1)
|
||||||
+ global.baseTriangle.cP(2))
|
+ global.baseTriangle.cP(2))
|
||||||
/ 2);
|
/ 2);
|
||||||
global.constructScenarioFunction = &ReducedModelOptimizer::constructBendingSimulationScenario;
|
|
||||||
global.interfaceViForComputingScenarioError = global.fullPatternInterfaceViPairs[0].first;
|
global.interfaceViForComputingScenarioError = global.fullPatternInterfaceViPairs[0].first;
|
||||||
minimumError
|
minimumError
|
||||||
= dlib::find_min_single_variable(&fullPatternMaxSimulationForceTranslationalObjective,
|
= dlib::find_min_single_variable(&fullPatternMaxSimulationForceTranslationalObjective,
|
||||||
|
@ -1141,16 +1213,18 @@ double ReducedModelOptimizer::getFullPatternMaxSimulationForce(
|
||||||
wasSuccessful = minimumError < translationalOptimizationEpsilon;
|
wasSuccessful = minimumError < translationalOptimizationEpsilon;
|
||||||
break;
|
break;
|
||||||
case Dome:
|
case Dome:
|
||||||
|
forceMagnitude = 0.005;
|
||||||
|
while (!wasSuccessful) {
|
||||||
global.desiredMaxRotationAngle = vcg::math::ToRad(35.0);
|
global.desiredMaxRotationAngle = vcg::math::ToRad(35.0);
|
||||||
global.constructScenarioFunction = &ReducedModelOptimizer::constructDomeSimulationScenario;
|
|
||||||
global.interfaceViForComputingScenarioError = global.fullPatternInterfaceViPairs[1].first;
|
global.interfaceViForComputingScenarioError = global.fullPatternInterfaceViPairs[1].first;
|
||||||
minimumError
|
minimumError
|
||||||
= dlib::find_min_single_variable(&fullPatternMaxSimulationForceRotationalObjective,
|
= dlib::find_min_single_variable(&fullPatternMaxSimulationForceRotationalObjective,
|
||||||
forceMagnitude,
|
forceMagnitude,
|
||||||
1e-2,
|
1e-3,
|
||||||
1e2,
|
0.5,
|
||||||
forceMagnitudeEpsilon);
|
forceMagnitudeEpsilon);
|
||||||
wasSuccessful = minimumError < vcg::math::ToRad(3.0);
|
wasSuccessful = minimumError < vcg::math::ToRad(3.0);
|
||||||
|
}
|
||||||
// result = dlib::find_min_global(&fullPatternMaxSimulationForceRotationalObjective,
|
// result = dlib::find_min_global(&fullPatternMaxSimulationForceRotationalObjective,
|
||||||
// 1e-2,
|
// 1e-2,
|
||||||
// 1,
|
// 1,
|
||||||
|
@ -1163,7 +1237,7 @@ double ReducedModelOptimizer::getFullPatternMaxSimulationForce(
|
||||||
(global.baseTriangle.cP(1)
|
(global.baseTriangle.cP(1)
|
||||||
+ global.baseTriangle.cP(2))
|
+ global.baseTriangle.cP(2))
|
||||||
/ 2);
|
/ 2);
|
||||||
global.constructScenarioFunction = &ReducedModelOptimizer::constructSaddleSimulationScenario;
|
|
||||||
global.interfaceViForComputingScenarioError = global.fullPatternInterfaceViPairs[0].first;
|
global.interfaceViForComputingScenarioError = global.fullPatternInterfaceViPairs[0].first;
|
||||||
minimumError
|
minimumError
|
||||||
= dlib::find_min_single_variable(&fullPatternMaxSimulationForceTranslationalObjective,
|
= dlib::find_min_single_variable(&fullPatternMaxSimulationForceTranslationalObjective,
|
||||||
|
@ -1192,10 +1266,9 @@ double ReducedModelOptimizer::getFullPatternMaxSimulationForce(
|
||||||
return forceMagnitude;
|
return forceMagnitude;
|
||||||
}
|
}
|
||||||
|
|
||||||
//TODO: Make more compact
|
std::vector<std::shared_ptr<SimulationJob>> ReducedModelOptimizer::createFullPatternSimulationJobs(
|
||||||
std::vector<std::shared_ptr<SimulationJob>>
|
const std::shared_ptr<SimulationMesh> &pMesh,
|
||||||
ReducedModelOptimizer::createFullPatternSimulationScenarios(
|
const std::vector<std::pair<BaseSimulationScenario, double>> &scenarioMaxForceMagnitudePairs)
|
||||||
const std::shared_ptr<SimulationMesh> &pMesh)
|
|
||||||
{
|
{
|
||||||
std::vector<std::shared_ptr<SimulationJob>> scenarios;
|
std::vector<std::shared_ptr<SimulationJob>> scenarios;
|
||||||
scenarios.resize(totalNumberOfSimulationScenarios);
|
scenarios.resize(totalNumberOfSimulationScenarios);
|
||||||
|
@ -1203,150 +1276,40 @@ ReducedModelOptimizer::createFullPatternSimulationScenarios(
|
||||||
SimulationJob job;
|
SimulationJob job;
|
||||||
job.pMesh = pMesh;
|
job.pMesh = pMesh;
|
||||||
|
|
||||||
//// Axial
|
for (std::pair<BaseSimulationScenario, double> scenarioMaxForceMagnitudePair :
|
||||||
bool wasSuccessful;
|
scenarioMaxForceMagnitudePairs) {
|
||||||
const double maxForceMagnitude_axial
|
const BaseSimulationScenario scenario = scenarioMaxForceMagnitudePair.first;
|
||||||
= getFullPatternMaxSimulationForce(BaseSimulationScenario::Axial, wasSuccessful);
|
const double maxForceMagnitude = scenarioMaxForceMagnitudePair.second;
|
||||||
const double minForceMagnitude_axial = -maxForceMagnitude_axial;
|
const double minForceMagnitude = scenarioIsSymmetrical[scenario] ? 0 : -maxForceMagnitude;
|
||||||
const int numberOfSimulationScenarios_axial
|
const int numberOfSimulationScenarios = simulationScenariosResolution[scenario];
|
||||||
= simulationScenariosResolution[BaseSimulationScenario::Axial];
|
const int forceMagnitudeSamples = scenarioIsSymmetrical[scenario]
|
||||||
const double forceMagnitudeStep_axial = numberOfSimulationScenarios_axial == 1
|
? numberOfSimulationScenarios - 1
|
||||||
? maxForceMagnitude_axial
|
: numberOfSimulationScenarios;
|
||||||
: (maxForceMagnitude_axial - minForceMagnitude_axial)
|
const double forceMagnitudeStep = numberOfSimulationScenarios == 1
|
||||||
/ (numberOfSimulationScenarios_axial - 1);
|
? maxForceMagnitude
|
||||||
const int baseSimulationScenarioIndexOffset_axial
|
: (maxForceMagnitude - minForceMagnitude)
|
||||||
|
/ (forceMagnitudeSamples);
|
||||||
|
const int baseSimulationScenarioIndexOffset
|
||||||
= std::accumulate(simulationScenariosResolution.begin(),
|
= std::accumulate(simulationScenariosResolution.begin(),
|
||||||
simulationScenariosResolution.begin() + BaseSimulationScenario::Axial,
|
simulationScenariosResolution.begin() + scenario,
|
||||||
0);
|
0);
|
||||||
for (int axialSimulationScenarioIndex = 0;
|
for (int simulationScenarioIndex = 0; simulationScenarioIndex < numberOfSimulationScenarios;
|
||||||
axialSimulationScenarioIndex < numberOfSimulationScenarios_axial;
|
simulationScenarioIndex++) {
|
||||||
axialSimulationScenarioIndex++) {
|
|
||||||
job.nodalExternalForces.clear();
|
job.nodalExternalForces.clear();
|
||||||
job.constrainedVertices.clear();
|
job.constrainedVertices.clear();
|
||||||
job.nodalForcedDisplacements.clear();
|
job.nodalForcedDisplacements.clear();
|
||||||
job.label = baseSimulationScenarioNames[BaseSimulationScenario::Axial] + "_"
|
job.label = baseSimulationScenarioNames[scenario] + "_"
|
||||||
+ std::to_string(axialSimulationScenarioIndex);
|
+ std::to_string(simulationScenarioIndex);
|
||||||
|
|
||||||
const double forceMagnitude = (forceMagnitudeStep_axial * axialSimulationScenarioIndex
|
const double forceMagnitude = (forceMagnitudeStep * simulationScenarioIndex
|
||||||
+ minForceMagnitude_axial);
|
+ minForceMagnitude);
|
||||||
constructAxialSimulationScenario(forceMagnitude, m_fullPatternOppositeInterfaceViPairs, job);
|
constructBaseScenarioFunctions[scenario](forceMagnitude,
|
||||||
|
|
||||||
scenarios[baseSimulationScenarioIndexOffset_axial + axialSimulationScenarioIndex]
|
|
||||||
= std::make_shared<SimulationJob>(job);
|
|
||||||
}
|
|
||||||
|
|
||||||
//// Shear
|
|
||||||
const double maxForceMagnitude_shear
|
|
||||||
= getFullPatternMaxSimulationForce(BaseSimulationScenario::Shear, wasSuccessful);
|
|
||||||
const double minForceMagnitude_shear = -maxForceMagnitude_shear;
|
|
||||||
const int numberOfSimulationScenarios_shear
|
|
||||||
= simulationScenariosResolution[BaseSimulationScenario::Shear];
|
|
||||||
const double forceMagnitudeStep_shear = numberOfSimulationScenarios_shear == 1
|
|
||||||
? maxForceMagnitude_shear
|
|
||||||
: (maxForceMagnitude_shear - minForceMagnitude_shear)
|
|
||||||
/ (numberOfSimulationScenarios_shear - 1);
|
|
||||||
const int baseSimulationScenarioIndexOffset_shear
|
|
||||||
= std::accumulate(simulationScenariosResolution.begin(),
|
|
||||||
simulationScenariosResolution.begin() + BaseSimulationScenario::Shear,
|
|
||||||
0);
|
|
||||||
for (int shearSimulationScenarioIndex = 0;
|
|
||||||
shearSimulationScenarioIndex < numberOfSimulationScenarios_shear;
|
|
||||||
shearSimulationScenarioIndex++) {
|
|
||||||
job.constrainedVertices.clear();
|
|
||||||
job.nodalExternalForces.clear();
|
|
||||||
job.label = baseSimulationScenarioNames[BaseSimulationScenario::Shear] + "_"
|
|
||||||
+ std::to_string(shearSimulationScenarioIndex);
|
|
||||||
const double forceMagnitude = (forceMagnitudeStep_shear * shearSimulationScenarioIndex
|
|
||||||
+ minForceMagnitude_shear);
|
|
||||||
constructShearSimulationScenario(forceMagnitude, m_fullPatternOppositeInterfaceViPairs, job);
|
|
||||||
scenarios[baseSimulationScenarioIndexOffset_shear + shearSimulationScenarioIndex]
|
|
||||||
= std::make_shared<SimulationJob>(job);
|
|
||||||
}
|
|
||||||
|
|
||||||
//// Bending
|
|
||||||
const double maxForceMagnitude_bending
|
|
||||||
= getFullPatternMaxSimulationForce(BaseSimulationScenario::Bending, wasSuccessful);
|
|
||||||
const double minForceMagnitude_bending = 0;
|
|
||||||
const int numberOfSimulationScenarios_bending
|
|
||||||
= simulationScenariosResolution[BaseSimulationScenario::Bending];
|
|
||||||
const double forceMagnitudeStep_bending = (maxForceMagnitude_bending - minForceMagnitude_bending)
|
|
||||||
/ (numberOfSimulationScenarios_bending);
|
|
||||||
const int baseSimulationScenarioIndexOffset_bending
|
|
||||||
= std::accumulate(simulationScenariosResolution.begin(),
|
|
||||||
simulationScenariosResolution.begin() + BaseSimulationScenario::Bending,
|
|
||||||
0);
|
|
||||||
for (int bendingSimulationScenarioIndex = 0;
|
|
||||||
bendingSimulationScenarioIndex < numberOfSimulationScenarios_bending;
|
|
||||||
bendingSimulationScenarioIndex++) {
|
|
||||||
job.nodalExternalForces.clear();
|
|
||||||
job.constrainedVertices.clear();
|
|
||||||
job.label = baseSimulationScenarioNames[BaseSimulationScenario::Bending] + "_"
|
|
||||||
+ std::to_string(bendingSimulationScenarioIndex);
|
|
||||||
const double forceMagnitude = (forceMagnitudeStep_bending
|
|
||||||
* (bendingSimulationScenarioIndex + 1)
|
|
||||||
+ minForceMagnitude_bending);
|
|
||||||
constructBendingSimulationScenario(forceMagnitude,
|
|
||||||
m_fullPatternOppositeInterfaceViPairs,
|
m_fullPatternOppositeInterfaceViPairs,
|
||||||
job);
|
job);
|
||||||
scenarios[baseSimulationScenarioIndexOffset_bending + bendingSimulationScenarioIndex]
|
|
||||||
|
scenarios[baseSimulationScenarioIndexOffset + simulationScenarioIndex]
|
||||||
= std::make_shared<SimulationJob>(job);
|
= std::make_shared<SimulationJob>(job);
|
||||||
}
|
}
|
||||||
|
|
||||||
//// Dome
|
|
||||||
const double maxForceMagnitude_dome
|
|
||||||
= getFullPatternMaxSimulationForce(BaseSimulationScenario::Dome, wasSuccessful);
|
|
||||||
const double minForceMagnitude_dome = 0;
|
|
||||||
const int numberOfSimulationScenarios_dome
|
|
||||||
= simulationScenariosResolution[BaseSimulationScenario::Dome];
|
|
||||||
const double forceMagnitudeStep_dome = (maxForceMagnitude_dome - minForceMagnitude_dome)
|
|
||||||
/ (numberOfSimulationScenarios_dome);
|
|
||||||
const int baseSimulationScenarioIndexOffset_dome
|
|
||||||
= std::accumulate(simulationScenariosResolution.begin(),
|
|
||||||
simulationScenariosResolution.begin() + BaseSimulationScenario::Dome,
|
|
||||||
0);
|
|
||||||
for (int domeSimulationScenarioIndex = 0;
|
|
||||||
domeSimulationScenarioIndex < numberOfSimulationScenarios_dome;
|
|
||||||
domeSimulationScenarioIndex++) {
|
|
||||||
job.constrainedVertices.clear();
|
|
||||||
job.nodalExternalForces.clear();
|
|
||||||
job.nodalForcedDisplacements.clear();
|
|
||||||
job.label = baseSimulationScenarioNames[BaseSimulationScenario::Dome] + "_"
|
|
||||||
+ std::to_string(domeSimulationScenarioIndex);
|
|
||||||
const double forceMagnitude = (forceMagnitudeStep_dome * (domeSimulationScenarioIndex + 1)
|
|
||||||
+ minForceMagnitude_dome);
|
|
||||||
constructDomeSimulationScenario(forceMagnitude, m_fullPatternOppositeInterfaceViPairs, job);
|
|
||||||
scenarios[baseSimulationScenarioIndexOffset_dome + domeSimulationScenarioIndex]
|
|
||||||
= std::make_shared<SimulationJob>(job);
|
|
||||||
}
|
|
||||||
|
|
||||||
//// Saddle
|
|
||||||
const double maxForceMagnitude_saddle
|
|
||||||
= getFullPatternMaxSimulationForce(BaseSimulationScenario::Saddle, wasSuccessful);
|
|
||||||
const double minForceMagnitude_saddle = 0;
|
|
||||||
const int numberOfSimulationScenarios_saddle
|
|
||||||
= simulationScenariosResolution[BaseSimulationScenario::Saddle];
|
|
||||||
const double forceMagnitudeStep_saddle = (maxForceMagnitude_saddle - minForceMagnitude_saddle)
|
|
||||||
/ numberOfSimulationScenarios_saddle;
|
|
||||||
const int baseSimulationScenarioIndexOffset_saddle
|
|
||||||
= std::accumulate(simulationScenariosResolution.begin(),
|
|
||||||
simulationScenariosResolution.begin() + BaseSimulationScenario::Saddle,
|
|
||||||
0);
|
|
||||||
for (int saddleSimulationScenarioIndex = 0;
|
|
||||||
saddleSimulationScenarioIndex < numberOfSimulationScenarios_saddle;
|
|
||||||
saddleSimulationScenarioIndex++) {
|
|
||||||
job.constrainedVertices.clear();
|
|
||||||
job.nodalExternalForces.clear();
|
|
||||||
job.nodalForcedDisplacements.clear();
|
|
||||||
job.label = baseSimulationScenarioNames[BaseSimulationScenario::Saddle] + "_"
|
|
||||||
+ std::to_string(saddleSimulationScenarioIndex);
|
|
||||||
const double forceMagnitude = (forceMagnitudeStep_saddle
|
|
||||||
* (saddleSimulationScenarioIndex + 1)
|
|
||||||
+ minForceMagnitude_saddle);
|
|
||||||
constructSaddleSimulationScenario(forceMagnitude,
|
|
||||||
m_fullPatternOppositeInterfaceViPairs,
|
|
||||||
job);
|
|
||||||
scenarios[baseSimulationScenarioIndexOffset_saddle + saddleSimulationScenarioIndex]
|
|
||||||
= std::make_shared<SimulationJob>(job);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifdef POLYSCOPE_DEFINED
|
#ifdef POLYSCOPE_DEFINED
|
||||||
|
@ -1445,12 +1408,6 @@ void ReducedModelOptimizer::optimize(
|
||||||
+ baseSimulationScenarioIndex,
|
+ baseSimulationScenarioIndex,
|
||||||
0));
|
0));
|
||||||
}
|
}
|
||||||
if (desiredBaseSimulationScenarioIndices.empty()) {
|
|
||||||
global.simulationScenarioIndices.resize(totalNumberOfSimulationScenarios);
|
|
||||||
std::iota(global.simulationScenarioIndices.begin(),
|
|
||||||
global.simulationScenarioIndices.end(),
|
|
||||||
0);
|
|
||||||
}
|
|
||||||
|
|
||||||
global.reducedPatternSimulationJobs.resize(totalNumberOfSimulationScenarios);
|
global.reducedPatternSimulationJobs.resize(totalNumberOfSimulationScenarios);
|
||||||
global.fullPatternResults.resize(totalNumberOfSimulationScenarios);
|
global.fullPatternResults.resize(totalNumberOfSimulationScenarios);
|
||||||
|
@ -1461,14 +1418,21 @@ void ReducedModelOptimizer::optimize(
|
||||||
global.numberOfFunctionCalls = 0;
|
global.numberOfFunctionCalls = 0;
|
||||||
global.optimizationSettings = optimizationSettings;
|
global.optimizationSettings = optimizationSettings;
|
||||||
global.pFullPatternSimulationMesh = m_pFullPatternSimulationMesh;
|
global.pFullPatternSimulationMesh = m_pFullPatternSimulationMesh;
|
||||||
global.fullPatternSimulationJobs = createFullPatternSimulationScenarios(
|
|
||||||
m_pFullPatternSimulationMesh);
|
std::vector<std::pair<BaseSimulationScenario, double>> fullPatternSimulationScenarioMaxMagnitudes
|
||||||
|
= getFullPatternMaxSimulationForces(desiredBaseSimulationScenarioIndices);
|
||||||
|
global.fullPatternSimulationJobs
|
||||||
|
= createFullPatternSimulationJobs(m_pFullPatternSimulationMesh,
|
||||||
|
fullPatternSimulationScenarioMaxMagnitudes);
|
||||||
// polyscope::removeAllStructures();
|
// polyscope::removeAllStructures();
|
||||||
|
|
||||||
results.baseTriangle = global.baseTriangle;
|
results.baseTriangle = global.baseTriangle;
|
||||||
|
|
||||||
DRMSimulationModel::Settings simulationSettings;
|
DRMSimulationModel::Settings simulationSettings;
|
||||||
simulationSettings.maxDRMIterations = 200000;
|
simulationSettings.maxDRMIterations = 50000;
|
||||||
|
simulationSettings.shouldUseTranslationalKineticEnergyThreshold = true;
|
||||||
|
simulationSettings.totalTranslationalKineticEnergyThreshold = 1e-10;
|
||||||
|
// simulationSettings.beVerbose = true;
|
||||||
// simulationSettings.shouldDraw = true;
|
// simulationSettings.shouldDraw = true;
|
||||||
// simulationSettings.isDebugMode = true;
|
// simulationSettings.isDebugMode = true;
|
||||||
// simulationSettings.debugModeStep = 100000;
|
// simulationSettings.debugModeStep = 100000;
|
||||||
|
@ -1494,8 +1458,21 @@ void ReducedModelOptimizer::optimize(
|
||||||
DRMSimulationModel::Settings debugSimulationSettings;
|
DRMSimulationModel::Settings debugSimulationSettings;
|
||||||
debugSimulationSettings.isDebugMode = true;
|
debugSimulationSettings.isDebugMode = true;
|
||||||
debugSimulationSettings.debugModeStep = 1000;
|
debugSimulationSettings.debugModeStep = 1000;
|
||||||
|
// debugSimulationSettings.maxDRMIterations = 100000;
|
||||||
|
debugSimulationSettings.shouldDraw = true;
|
||||||
|
debugSimulationSettings.drawingStep = debugSimulationSettings.debugModeStep;
|
||||||
debugSimulationSettings.shouldCreatePlots = true;
|
debugSimulationSettings.shouldCreatePlots = true;
|
||||||
simulator.executeSimulation(pFullPatternSimulationJob, simulationSettings);
|
// debugSimulationSettings.Dtini = 0.06;
|
||||||
|
debugSimulationSettings.beVerbose = true;
|
||||||
|
debugSimulationSettings.useAverage = true;
|
||||||
|
// debugSimulationSettings.totalExternalForcesNormPercentageTermination = 1e-3;
|
||||||
|
debugSimulationSettings.shouldUseTranslationalKineticEnergyThreshold = true;
|
||||||
|
auto debugResults = simulator.executeSimulation(pFullPatternSimulationJob,
|
||||||
|
debugSimulationSettings);
|
||||||
|
debugResults.setLabelPrefix("debugResults");
|
||||||
|
debugResults.registerForDrawing();
|
||||||
|
polyscope::show();
|
||||||
|
debugResults.unregister();
|
||||||
#endif
|
#endif
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
|
@ -29,6 +29,12 @@ class ReducedModelOptimizer
|
||||||
std::unordered_map<size_t, size_t> nodeToSlot;
|
std::unordered_map<size_t, size_t> nodeToSlot;
|
||||||
std::unordered_map<size_t, std::unordered_set<size_t>> slotToNode;
|
std::unordered_map<size_t, std::unordered_set<size_t>> slotToNode;
|
||||||
std::string optimizationNotes;
|
std::string optimizationNotes;
|
||||||
|
std::vector<std::function<
|
||||||
|
void(const double &,
|
||||||
|
const std::vector<std::pair<FullPatternVertexIndex, FullPatternVertexIndex>> &,
|
||||||
|
SimulationJob &)>>
|
||||||
|
constructBaseScenarioFunctions;
|
||||||
|
std::vector<bool> scenarioIsSymmetrical;
|
||||||
|
|
||||||
public:
|
public:
|
||||||
constexpr static std::array<int, 5> simulationScenariosResolution = {10, 10, 20, 20, 20};
|
constexpr static std::array<int, 5> simulationScenariosResolution = {10, 10, 20, 20, 20};
|
||||||
|
@ -43,7 +49,12 @@ public:
|
||||||
const ReducedPatternOptimization::Settings &xRanges,
|
const ReducedPatternOptimization::Settings &xRanges,
|
||||||
ReducedPatternOptimization::Results &results,
|
ReducedPatternOptimization::Results &results,
|
||||||
const std::vector<ReducedPatternOptimization::BaseSimulationScenario> &simulationScenarios
|
const std::vector<ReducedPatternOptimization::BaseSimulationScenario> &simulationScenarios
|
||||||
= std::vector<ReducedPatternOptimization::BaseSimulationScenario>());
|
= std::vector<ReducedPatternOptimization::BaseSimulationScenario>(
|
||||||
|
{ReducedPatternOptimization::Axial,
|
||||||
|
ReducedPatternOptimization::Shear,
|
||||||
|
ReducedPatternOptimization::Bending,
|
||||||
|
ReducedPatternOptimization::Dome,
|
||||||
|
ReducedPatternOptimization::Saddle}));
|
||||||
double operator()(const Eigen::VectorXd &x, Eigen::VectorXd &) const;
|
double operator()(const Eigen::VectorXd &x, Eigen::VectorXd &) const;
|
||||||
|
|
||||||
ReducedModelOptimizer(const std::vector<size_t> &numberOfNodesPerSlot);
|
ReducedModelOptimizer(const std::vector<size_t> &numberOfNodesPerSlot);
|
||||||
|
@ -69,7 +80,7 @@ public:
|
||||||
double innerHexagonRotationAngle);
|
double innerHexagonRotationAngle);
|
||||||
static double objective(double b, double r, double E);
|
static double objective(double b, double r, double E);
|
||||||
|
|
||||||
static std::vector<std::shared_ptr<SimulationJob>> createFullPatternSimulationScenarios(
|
static std::vector<std::shared_ptr<SimulationJob>> createFullPatternSimulationJobs(
|
||||||
const std::shared_ptr<SimulationMesh> &pMesh,
|
const std::shared_ptr<SimulationMesh> &pMesh,
|
||||||
const std::unordered_map<size_t, size_t> &fullPatternOppositeInterfaceViMap);
|
const std::unordered_map<size_t, size_t> &fullPatternOppositeInterfaceViMap);
|
||||||
|
|
||||||
|
@ -172,8 +183,10 @@ private:
|
||||||
Eigen::MatrixX3d &optimalDisplacementsOfReducedModel);
|
Eigen::MatrixX3d &optimalDisplacementsOfReducedModel);
|
||||||
static void runOptimization(const ReducedPatternOptimization::Settings &settings,
|
static void runOptimization(const ReducedPatternOptimization::Settings &settings,
|
||||||
ReducedPatternOptimization::Results &results);
|
ReducedPatternOptimization::Results &results);
|
||||||
std::vector<std::shared_ptr<SimulationJob>> createFullPatternSimulationScenarios(
|
std::vector<std::shared_ptr<SimulationJob>> createFullPatternSimulationJobs(
|
||||||
const std::shared_ptr<SimulationMesh> &pMesh);
|
const std::shared_ptr<SimulationMesh> &pMesh,
|
||||||
|
const std::vector<std::pair<ReducedPatternOptimization::BaseSimulationScenario, double>>
|
||||||
|
&maxForceMagnitudes);
|
||||||
void computeMaps(PatternGeometry &fullModel, PatternGeometry &reducedPattern);
|
void computeMaps(PatternGeometry &fullModel, PatternGeometry &reducedPattern);
|
||||||
void createSimulationMeshes(PatternGeometry &fullModel, PatternGeometry &reducedModel);
|
void createSimulationMeshes(PatternGeometry &fullModel, PatternGeometry &reducedModel);
|
||||||
static void initializeOptimizationParameters(const std::shared_ptr<SimulationMesh> &mesh,
|
static void initializeOptimizationParameters(const std::shared_ptr<SimulationMesh> &mesh,
|
||||||
|
@ -185,9 +198,17 @@ private:
|
||||||
static void getResults(const dlib::function_evaluation &optimizationResult_dlib,
|
static void getResults(const dlib::function_evaluation &optimizationResult_dlib,
|
||||||
const ReducedPatternOptimization::Settings &settings,
|
const ReducedPatternOptimization::Settings &settings,
|
||||||
ReducedPatternOptimization::Results &results);
|
ReducedPatternOptimization::Results &results);
|
||||||
std::vector<double> getFullPatternMaxSimulationForces();
|
double computeFullPatternMaxSimulationForce(
|
||||||
double getFullPatternMaxSimulationForce(
|
const ReducedPatternOptimization::BaseSimulationScenario &scenario);
|
||||||
const ReducedPatternOptimization::BaseSimulationScenario &scenario, bool &wasSuccessfull);
|
std::vector<std::pair<ReducedPatternOptimization::BaseSimulationScenario, double>>
|
||||||
|
computeFullPatternMaxSimulationForces(
|
||||||
|
const std::vector<ReducedPatternOptimization::BaseSimulationScenario>
|
||||||
|
&desiredBaseSimulationScenarioIndices);
|
||||||
|
|
||||||
|
std::vector<std::pair<ReducedPatternOptimization::BaseSimulationScenario, double>>
|
||||||
|
getFullPatternMaxSimulationForces(
|
||||||
|
const std::vector<ReducedPatternOptimization::BaseSimulationScenario>
|
||||||
|
&desiredBaseSimulationScenarioIndices);
|
||||||
};
|
};
|
||||||
void updateMesh(long n, const double *x);
|
void updateMesh(long n, const double *x);
|
||||||
#endif // REDUCEDMODELOPTIMIZER_HPP
|
#endif // REDUCEDMODELOPTIMIZER_HPP
|
||||||
|
|
Loading…
Reference in New Issue