Get all properties for a specific frame (perfect for a UI to display the current state of all properties at any time)
| 411 | // Get all properties for a specific frame (perfect for a UI to display the current state |
| 412 | // of all properties at any time) |
| 413 | Json::Value TrackedObjectBBox::PropertiesJSON(int64_t requested_frame) const |
| 414 | { |
| 415 | Json::Value root; |
| 416 | |
| 417 | BBox box = GetBox(requested_frame); |
| 418 | |
| 419 | // Add the ID of this object to the JSON object |
| 420 | root["box_id"] = add_property_json("Box ID", 0.0, "string", Id(), NULL, -1, -1, true, requested_frame); |
| 421 | |
| 422 | // Add the data of given frame bounding-box to the JSON object |
| 423 | root["x1"] = add_property_json("X1", box.cx-(box.width/2), "float", "", NULL, 0.0, 1.0, true, requested_frame); |
| 424 | root["y1"] = add_property_json("Y1", box.cy-(box.height/2), "float", "", NULL, 0.0, 1.0, true, requested_frame); |
| 425 | root["x2"] = add_property_json("X2", box.cx+(box.width/2), "float", "", NULL, 0.0, 1.0, true, requested_frame); |
| 426 | root["y2"] = add_property_json("Y2", box.cy+(box.height/2), "float", "", NULL, 0.0, 1.0, true, requested_frame); |
| 427 | |
| 428 | // Add the bounding-box Keyframes to the JSON object |
| 429 | root["delta_x"] = add_property_json("Displacement X-axis", delta_x.GetValue(requested_frame), "float", "", &delta_x, -1.0, 1.0, false, requested_frame); |
| 430 | root["delta_y"] = add_property_json("Displacement Y-axis", delta_y.GetValue(requested_frame), "float", "", &delta_y, -1.0, 1.0, false, requested_frame); |
| 431 | root["scale_x"] = add_property_json("Scale (Width)", scale_x.GetValue(requested_frame), "float", "", &scale_x, 0.0, 1.0, false, requested_frame); |
| 432 | root["scale_y"] = add_property_json("Scale (Height)", scale_y.GetValue(requested_frame), "float", "", &scale_y, 0.0, 1.0, false, requested_frame); |
| 433 | root["rotation"] = add_property_json("Rotation", rotation.GetValue(requested_frame), "float", "", &rotation, 0, 360, false, requested_frame); |
| 434 | root["visible"] = add_property_json("Visible", visible.GetValue(requested_frame), "int", "", &visible, 0, 1, true, requested_frame); |
| 435 | |
| 436 | root["draw_box"] = add_property_json("Draw Box", draw_box.GetValue(requested_frame), "int", "", &draw_box, 0, 1, false, requested_frame); |
| 437 | root["draw_box"]["choices"].append(add_property_choice_json("Yes", true, draw_box.GetValue(requested_frame))); |
| 438 | root["draw_box"]["choices"].append(add_property_choice_json("No", false, draw_box.GetValue(requested_frame))); |
| 439 | |
| 440 | root["stroke"] = add_property_json("Border", 0.0, "color", "", NULL, 0, 255, false, requested_frame); |
| 441 | root["stroke"]["red"] = add_property_json("Red", stroke.red.GetValue(requested_frame), "float", "", &stroke.red, 0, 255, false, requested_frame); |
| 442 | root["stroke"]["blue"] = add_property_json("Blue", stroke.blue.GetValue(requested_frame), "float", "", &stroke.blue, 0, 255, false, requested_frame); |
| 443 | root["stroke"]["green"] = add_property_json("Green", stroke.green.GetValue(requested_frame), "float", "", &stroke.green, 0, 255, false, requested_frame); |
| 444 | root["stroke_width"] = add_property_json("Stroke Width", stroke_width.GetValue(requested_frame), "int", "", &stroke_width, 1, 10, false, requested_frame); |
| 445 | root["stroke_alpha"] = add_property_json("Stroke alpha", stroke_alpha.GetValue(requested_frame), "float", "", &stroke_alpha, 0.0, 1.0, false, requested_frame); |
| 446 | |
| 447 | root["background_alpha"] = add_property_json("Background Alpha", background_alpha.GetValue(requested_frame), "float", "", &background_alpha, 0.0, 1.0, false, requested_frame); |
| 448 | root["background_corner"] = add_property_json("Background Corner Radius", background_corner.GetValue(requested_frame), "int", "", &background_corner, 0.0, 150.0, false, requested_frame); |
| 449 | |
| 450 | root["background"] = add_property_json("Background", 0.0, "color", "", NULL, 0, 255, false, requested_frame); |
| 451 | root["background"]["red"] = add_property_json("Red", background.red.GetValue(requested_frame), "float", "", &background.red, 0, 255, false, requested_frame); |
| 452 | root["background"]["blue"] = add_property_json("Blue", background.blue.GetValue(requested_frame), "float", "", &background.blue, 0, 255, false, requested_frame); |
| 453 | root["background"]["green"] = add_property_json("Green", background.green.GetValue(requested_frame), "float", "", &background.green, 0, 255, false, requested_frame); |
| 454 | |
| 455 | // Return formatted string |
| 456 | return root; |
| 457 | } |
| 458 | |
| 459 | |
| 460 | // Generate JSON for a property |