| 242 | } |
| 243 | |
| 244 | void EncodeTriangleStrip(InPointsT const & points, m2::PointU const & basePoint, m2::PointU const & maxPoint, |
| 245 | OutDeltasT & deltas) |
| 246 | { |
| 247 | size_t const count = points.size(); |
| 248 | if (count > 0) |
| 249 | { |
| 250 | ASSERT_GREATER(count, 2, ()); |
| 251 | |
| 252 | deltas.push_back(EncodePointDeltaAsUint(points[0], basePoint)); |
| 253 | deltas.push_back(EncodePointDeltaAsUint(points[1], points[0])); |
| 254 | deltas.push_back(EncodePointDeltaAsUint(points[2], points[1])); |
| 255 | |
| 256 | m2::PointD const maxPointD(maxPoint); |
| 257 | for (size_t i = 3; i < count; ++i) |
| 258 | { |
| 259 | m2::PointU const prediction = PredictPointInTriangle(maxPointD, points[i - 1], points[i - 2], points[i - 3]); |
| 260 | deltas.push_back(EncodePointDeltaAsUint(points[i], prediction)); |
| 261 | } |
| 262 | } |
| 263 | } |
| 264 | |
| 265 | void DecodeTriangleStrip(InDeltasT const & deltas, m2::PointU const & basePoint, m2::PointU const & maxPoint, |
| 266 | OutPointsT & points) |
nothing calls this directly
no test coverage detected