@@ -213,31 +213,36 @@ struct canopy {
213213
214214// ! Object struct
215215struct object {
216- int index;
217- uint objID;
218- std::string name;
219- std::string file;
220- std::string data_group;
221- std::vector<uint> UUIDs;
222- helios::vec3 position;
223- helios::vec3 prev_position;
224- helios::vec3 orientation;
225- helios::vec3 prev_orientation;
226- helios::vec3 scale;
227- helios::vec3 prev_scale;
228- helios::RGBcolor color;
229- helios::RGBcolor prev_color;
230- bool use_texture_file;
231- bool is_dirty;
216+ int index;
217+ uint objID;
218+ std::string name;
219+ std::string file;
220+ std::string data_group;
221+ std::vector<uint> UUIDs;
222+ helios::vec3 position;
223+ helios::vec3 prev_position;
224+ helios::vec3 orientation;
225+ helios::vec3 prev_orientation;
226+ helios::vec3 scale;
227+ helios::vec3 prev_scale;
228+ helios::RGBcolor color;
229+ helios::RGBcolor prev_color;
230+ bool use_texture_file;
231+ bool is_dirty;
232232};
233233
234234// ! Rig struct
235235struct rig {
236+ int num_images;
236237 std::string label;
237238 std::vector<distribution> position_noise;
239+ std::vector<distribution> lookat_noise;
238240 helios::RGBcolor color;
239241 helios::vec3 position;
240242 helios::vec3 lookat;
243+ std::vector<helios::vec3> camera_positions;
244+ std::vector<helios::vec3> camera_lookats;
245+ std::vector<int > keypoint_frames;
241246 std::set<std::string> camera_labels;
242247 std::set<std::string> light_labels;
243248 bool write_depth;
@@ -476,6 +481,10 @@ class ProjectBuilder {
476481 // ! XML Error String
477482 std::string xml_error_string;
478483
484+ rig default_rig{1 , " default_rig" , {}, {}, helios::RGBcolor (1 , 0 , 0 ),
485+ helios::vec3 (0 , 0 , 1 ), helios::vec3 (0 , 0 , 0 ), {helios::vec3 (0 , 0 , 1 )}, {helios::vec3 (0 , 0 , 0 )},
486+ {1 }, {}, {}, false , false , false };
487+
479488 // ! Rig labels
480489 std::vector<std::string> rig_labels;
481490
@@ -515,6 +524,9 @@ class ProjectBuilder {
515524 // ! Map keyed by rig name that returns rig index
516525 std::map<std::string, int > rig_dict;
517526
527+ // ! Map keyed by rig name that returns the corresponding rig struct.
528+ std::map<std::string, rig> rig_dict_;
529+
518530 // ! Rig labels
519531 std::set<std::string> rig_labels_set;
520532
@@ -1106,8 +1118,30 @@ class ProjectBuilder {
11061118 // ! Dictionary containing UUIDs for every camera model
11071119 std::map<std::string, std::vector<uint>> camera_models_dict;
11081120
1121+ // ! General tab
1122+ void generalTab ();
1123+
1124+ // ! Canopy tab
1125+ void canopyTab ();
1126+
1127+ // ! Camera tab
1128+ void cameraTab ();
1129+
1130+ // ! Calculation tab
1131+ void calculationTab ();
1132+
1133+ // ! Object tab
11091134 void objectTab ();
11101135
1136+ // ! Radiation tab
1137+ void radiationTab ();
1138+
1139+ // ! Rig tab
1140+ void rigTab ();
1141+
1142+ // ! Light tab
1143+ void lightTab ();
1144+
11111145 // ! Function to delete arrows denoting rig movement
11121146 void deleteArrows ();
11131147
@@ -1826,10 +1860,16 @@ class ProjectBuilder {
18261860
18271861 // ! Delete rig
18281862 /* *
1829- * \param[in] curr_rig Rig to be deleted
1863+ * \param[in] curr_rig Name of rig to be deleted
18301864 */
18311865 void deleteRig (std::string curr_rig);
18321866
1867+ // ! Add rig
1868+ /* *
1869+ * \param[in] new_rig_label Name of rig to be added
1870+ */
1871+ void addRig (std::string new_rig_label);
1872+
18331873#ifdef ENABLE_HELIOS_VISUALIZER
18341874 // ! Create dropdown widget
18351875 /* *
0 commit comments