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

Comparing ray/src/rt/RcontribSimulManager.h (file contents):
Revision 2.9 by greg, Tue Dec 24 20:57:13 2024 UTC vs.
Revision 2.10 by greg, Thu Jan 2 16:16:49 2025 UTC

# Line 207 | Line 207 | class RcontribSimulManager : protected RtraceSimulMana
207                                          modLUT.freek = efree;
208                                          modLUT.freed = FreeRcMod;
209                                          kid = NULL; kidRow = NULL; nkids = 0;
210                                        rtFlags = RTtraceSources;
211                                        SetTraceCall(&RctCall, this);
210                                          outOp = RCOnew;
211                                          cdsF = &defDataShare;
212                                          xres = yres = 0;
213                                          accum = 1;
214 +                                        if (octname) {
215 +                                                SetTraceCall(&RctCall, this);
216 +                                                rtFlags |= RTtraceSources;
217 +                                                UpdateMode();
218 +                                        }
219                                  }
220                                  ~RcontribSimulManager() {
221                                          if (nkids >= 0) ClearModifiers();
# Line 230 | Line 233 | class RcontribSimulManager : protected RtraceSimulMana
233                                  }
234                                  /// Load octree and prepare renderer
235          bool                    LoadOctree(const char *octn) {
236 <                                        return RtraceSimulManager::LoadOctree(octn);
236 >                                        if (octname) Cleanup(false);
237 >                                        if (!RtraceSimulManager::LoadOctree(octn))
238 >                                                return false;
239 >                                        SetTraceCall(&RctCall, this);
240 >                                        rtFlags |= RTtraceSources;
241 >                                        return UpdateMode();
242                                  }
243                                  /// Prepare header from previous input (or clear)
244          bool                    NewHeader(const char *inspec=NULL) {
# Line 324 | Line 332 | class RcontribSimulManager : protected RtraceSimulMana
332                                          if (rowsDone.Length()) {
333                                                  SetThreadCount(1);
334                                                  rowsDone.NewBitMap(0);
335 +                                                rInPos = 0;
336                                          }
337                                          lu_done(&modLUT);
338                                          delete outList; outList = NULL;
# Line 333 | Line 342 | class RcontribSimulManager : protected RtraceSimulMana
342          int                     Cleanup(bool everything = false) {
343                                          ClearModifiers();
344                                          cow_doneshare();
345 +                                        if (everything) {
346 +                                                dtyp = 'f';
347 +                                                outOp = RCOnew;
348 +                                                cdsF = &defDataShare;
349 +                                                xres = yres = 0;
350 +                                                accum = 1;
351 +                                                rtFlags &= ~RCmask;
352 +                                        }
353                                          return RtraceSimulManager::Cleanup(everything);
354                                  }
355   };

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines