ViewVC Help
View File | Revision Log | Show Annotations | Download File | Root Listing
root/radiance/ray/src/rt/RtraceSimulManager.cpp
(Generate patch)

Comparing ray/src/rt/RtraceSimulManager.cpp (file contents):
Revision 2.17 by greg, Mon Sep 16 19:18:32 2024 UTC vs.
Revision 2.18 by greg, Thu Oct 10 21:02:52 2024 UTC

# Line 288 | Line 288 | RtraceSimulManager::UpdateMode()
288          int     misMatch = rtFlags ^ curFlags;
289                                  // updates based on toggled flags
290          if (misMatch & RTtraceSources) {
291 +                int     sn = nsources;
292                  if (rtFlags & RTtraceSources) {
293 <                        for (int sn = 0; sn < nsources; sn++)
293 >                        srcFollowed.NewBitMap(nsources);
294 >                        while (sn--) {
295 >                                if (source[sn].sflags & SFOLLOW)
296 >                                        continue;
297                                  source[sn].sflags |= SFOLLOW;
298 <                } else          // cannot undo this...
299 <                        rtFlags |= RTtraceSources;
298 >                                srcFollowed.Set(sn);
299 >                        }
300 >                } else {
301 >                        while (sn--)
302 >                                if (srcFollowed.Check(sn))
303 >                                        source[sn].sflags &= ~SFOLLOW;
304 >                        srcFollowed.NewBitMap(0);
305 >                }
306          }
307          if (misMatch & RTdoFIFO && FlushQueue() < 0)
308                  return false;

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines