MCPcopy Create free account
hub / github.com/codereader/DarkRadiant / constructSeam

Method constructSeam

radiantcore/patch/Patch.cpp:1095–1209  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

1093}
1094
1095void 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];

Callers 1

constructCapFunction · 0.80

Calls 2

midPointFunction · 0.85
beginMethod · 0.45

Tested by

no test coverage detected