MCPcopy Create free account
hub / github.com/colmap/colmap / BindTrack

Function BindTrack

src/pycolmap/scene/track.cc:20–77  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

18namespace py = pybind11;
19
20void BindTrack(py::module& m) {
21 py::classh<TrackElement> PyTrackElement(m, "TrackElement");
22 PyTrackElement.def(py::init<>())
23 .def(py::init<image_t, point2D_t>(), "image_id"_a, "point2D_idx"_a)
24 .def_readwrite("image_id", &TrackElement::image_id)
25 .def_readwrite("point2D_idx", &TrackElement::point2D_idx);
26 MakeDataclass(PyTrackElement);
27
28 py::classh<Track> PyTrack(m, "Track");
29 PyTrack.def(py::init<>())
30 .def(py::init([](const std::vector<TrackElement>& elements) {
31 auto track = std::make_shared<Track>();
32 track->AddElements(elements);
33 return track;
34 }),
35 "elements"_a)
36 .def_property("elements",
37 py::overload_cast<>(&Track::Elements),
38 &Track::SetElements)
39 .def("length", &Track::Length, "Track Length.")
40 .def("add_element",
41 py::overload_cast<image_t, point2D_t>(&Track::AddElement),
42 "image_id"_a,
43 "point2D_idx"_a,
44 "Add an observation to the track.")
45 .def("add_element",
46 py::overload_cast<const TrackElement&>(&Track::AddElement),
47 "element"_a)
48 .def("add_elements",
49 &Track::AddElements,
50 "elements"_a,
51 "Add multiple elements.")
52 .def("delete_element",
53 py::overload_cast<image_t, point2D_t>(&Track::DeleteElement),
54 "image_id"_a,
55 "point2D_idx"_a,
56 "Delete observation from track.")
57 .def("delete_element",
58 py::overload_cast<size_t>(&Track::DeleteElement),
59 "index"_a,
60 "Remove TrackElement at index.")
61 .def("element",
62 py::overload_cast<size_t>(&Track::Element),
63 "index"_a,
64 "Access specific element by index.",
65 py::return_value_policy::reference_internal)
66 .def("set_element",
67 &Track::SetElement,
68 "index"_a,
69 "element"_a,
70 "Set element at specific index.")
71 .def("reserve",
72 &Track::Reserve,
73 "num_elements"_a,
74 "Reserve capacity for elements.")
75 .def("compress", &Track::Compress, "Shrink capacity to fit size.");
76 MakeDataclass(PyTrack);
77}

Callers 1

BindSceneFunction · 0.85

Calls 2

MakeDataclassFunction · 0.85
AddElementsMethod · 0.80

Tested by

no test coverage detected