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

Comparing ray/src/rt/RtraceSimulManager.h (file contents):
Revision 2.9 by greg, Sat Aug 3 01:54:46 2024 UTC vs.
Revision 2.12 by greg, Mon Aug 5 19:51:18 2024 UTC

# Line 24 | Line 24 | typedef int    RayReportCall(RAY *r, void *cd);
24   /// Multi-threaded simulation manager base class
25   class RadSimulManager {
26          char *                  header;                 // header (less intro and format)
27 +        int                     hlen;                   // header string length
28   protected:
29                                  // Assign ray to subthread (fails if NThreads()<2)
30          bool                    SplitRay(RAY *r);
31   public:
32                                  RadSimulManager(const char *octn = NULL) {
33 <                                        header = NULL;
33 >                                        header = NULL; hlen = 0;
34                                          LoadOctree(octn);
35                                  }
36                                  ~RadSimulManager() {
# Line 39 | Line 40 | class RadSimulManager { (public)
40          bool                    LoadOctree(const char *octn);
41                                  /// Prepare header from previous input (or clear)
42                                  /// Normally called during octree load
43 <        bool                    NewHeader(const char *fname=NULL);
44 <                                /// Add a string to header (adds newline if none)
43 >        bool                    NewHeader(const char *inspec=NULL);
44 >                                /// Add a line to header (adds newline if none)
45          bool                    AddHeader(const char *str);
46                                  /// Append program line to header
47          bool                    AddHeader(int ac, const char *av[]);
48 <                                /// Get header lines if any
48 >                                /// Get header lines or empty string
49          const char *            GetHeader() const {
50 <                                        return header;
50 >                                        return hlen ? header : "";
51                                  }
52                                  /// How many cores are available?
53          static int              GetNCores();
# Line 104 | Line 105 | class RtraceSimulManager : public RadSimulManager { (p
105          int                     SetThreadCount(int nt = 0) {
106                                          if (nt <= 0) nt = castonly ? 1 : GetNCores();
107                                          if (nt == NThreads()) return nt;
108 <                                        if (FlushQueue() < 0) return 0;
108 >                                        if (nt < NThreads() && FlushQueue() < 0) return 0;
109                                          return RadSimulManager::SetThreadCount(nt);
110                                  }
111                                  /// Add ray bundle to queue w/ optional 1st ray ID

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines