[core] Introduce ProjectedCollisionBox type

ProjectedCollisionBox encapsulates geometry of the projected
collision box, it is using union and thus provides memory save
- 12 bytes per collision box instance.
This commit is contained in:
Mikhail Pozdnyakov
2019-08-01 19:16:01 +03:00
parent 55581b6e61
commit 65d2f7ed6a
5 changed files with 83 additions and 60 deletions

View File

@@ -628,7 +628,7 @@ void Placement::updateBucketOpacities(SymbolBucket& bucket, const TransformState
return;
}
for (const CollisionBox& box : feature.boxes) {
const auto& dynamicVertex = CollisionBoxProgram::dynamicVertex(placed, !box.used, {});
const auto& dynamicVertex = CollisionBoxProgram::dynamicVertex(placed, !box.projected.isCircle(), {});
bucket.collisionCircle->dynamicVertices.extend(4, dynamicVertex);
}
};