MCPcopy Create free account
hub / github.com/TombEngine/TombEngine / CollectDecalsForRoom

Method CollectDecalsForRoom

TombEngine/Renderer/RendererFrame.cpp:848–891  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

846 }
847
848 void Renderer::CollectDecalsForRoom(short roomNumber, RenderView& renderView)
849 {
850 if (_rooms.size() <= roomNumber)
851 return;
852
853 RendererRoom& room = _rooms[roomNumber];
854
855 room.Decals.clear();
856
857 if (Decals.empty())
858 return;
859
860 for (auto& decal : Decals)
861 {
862 if (!renderView.Camera.Frustum.SphereInFrustum(decal.Sphere.Center, decal.Sphere.Radius))
863 continue;
864
865 bool decalInRoom = (decal.RoomNumber == room.RoomNumber);
866
867 if (!decalInRoom)
868 {
869 for (auto j : decal.Neighbors)
870 {
871 if (j == roomNumber)
872 {
873 decalInRoom = true;
874 break;
875 }
876 }
877 }
878
879 if (decalInRoom)
880 {
881 RendererDecal newDecal;
882
883 newDecal.Position = decal.Sphere.Center;
884 newDecal.Radius = decal.Sphere.Radius;
885 newDecal.Opacity = decal.Opacity;
886 newDecal.Pattern = (int)decal.Type;
887
888 room.Decals.push_back(newDecal);
889 }
890 }
891 }
892
893 void Renderer::CollectLightsForRoom(short roomNumber, RenderView &renderView)
894 {

Callers

nothing calls this directly

Calls 5

SphereInFrustumMethod · 0.80
sizeMethod · 0.45
clearMethod · 0.45
emptyMethod · 0.45
push_backMethod · 0.45

Tested by

no test coverage detected