| 1093 | } |
| 1094 | |
| 1095 | void Patch::constructSeam(patch::CapType eType, std::vector<Vector3>& points, std::size_t width) |
| 1096 | { |
| 1097 | switch(eType) |
| 1098 | { |
| 1099 | case patch::CapType::InvertedBevel: |
| 1100 | { |
| 1101 | setDims(3, 3); |
| 1102 | _ctrl[0].vertex = points[0]; |
| 1103 | _ctrl[1].vertex = points[1]; |
| 1104 | _ctrl[2].vertex = points[1]; |
| 1105 | _ctrl[3].vertex = points[1]; |
| 1106 | _ctrl[4].vertex = points[1]; |
| 1107 | _ctrl[5].vertex = points[1]; |
| 1108 | _ctrl[6].vertex = points[2]; |
| 1109 | _ctrl[7].vertex = points[1]; |
| 1110 | _ctrl[8].vertex = points[1]; |
| 1111 | } |
| 1112 | break; |
| 1113 | case patch::CapType::Bevel: |
| 1114 | { |
| 1115 | setDims(3, 3); |
| 1116 | Vector3 p3(points[2] + (points[0] - points[1])); |
| 1117 | _ctrl[0].vertex = p3; |
| 1118 | _ctrl[1].vertex = p3; |
| 1119 | _ctrl[2].vertex = points[2]; |
| 1120 | _ctrl[3].vertex = p3; |
| 1121 | _ctrl[4].vertex = p3; |
| 1122 | _ctrl[5].vertex = points[1]; |
| 1123 | _ctrl[6].vertex = p3; |
| 1124 | _ctrl[7].vertex = p3; |
| 1125 | _ctrl[8].vertex = points[0]; |
| 1126 | } |
| 1127 | break; |
| 1128 | case patch::CapType::EndCap: |
| 1129 | { |
| 1130 | Vector3 p5(math::midPoint(points[0], points[4])); |
| 1131 | |
| 1132 | setDims(3, 3); |
| 1133 | _ctrl[0].vertex = points[0]; |
| 1134 | _ctrl[1].vertex = p5; |
| 1135 | _ctrl[2].vertex = points[4]; |
| 1136 | _ctrl[3].vertex = points[1]; |
| 1137 | _ctrl[4].vertex = points[2]; |
| 1138 | _ctrl[5].vertex = points[3]; |
| 1139 | _ctrl[6].vertex = points[2]; |
| 1140 | _ctrl[7].vertex = points[2]; |
| 1141 | _ctrl[8].vertex = points[2]; |
| 1142 | } |
| 1143 | break; |
| 1144 | case patch::CapType::InvertedEndCap: |
| 1145 | { |
| 1146 | setDims(5, 3); |
| 1147 | _ctrl[0].vertex = points[4]; |
| 1148 | _ctrl[1].vertex = points[3]; |
| 1149 | _ctrl[2].vertex = points[2]; |
| 1150 | _ctrl[3].vertex = points[1]; |
| 1151 | _ctrl[4].vertex = points[0]; |
| 1152 | _ctrl[5].vertex = points[3]; |
no test coverage detected