Skip to content

Commit 9b4d3b8

Browse files
committed
throw also at image.SetFramePtr. add and fix tests.
1 parent 67f2b9f commit 9b4d3b8

File tree

2 files changed

+29
-0
lines changed

2 files changed

+29
-0
lines changed

src/colmap/scene/image.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -236,6 +236,7 @@ class Frame* Image::FramePtr() const { return THROW_CHECK_NOTNULL(frame_ptr_); }
236236
void Image::SetFramePtr(class Frame* frame) {
237237
THROW_CHECK_NOTNULL(frame);
238238
THROW_CHECK_NE(frame->FrameId(), kInvalidFrameId);
239+
THROW_CHECK(frame->HasDataId(DataId()));
239240
if (!HasFramePtr()) {
240241
THROW_CHECK_EQ(frame->FrameId(), frame_id_);
241242
frame_ptr_ = frame;

src/colmap/scene/image_test.cc

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -120,6 +120,22 @@ TEST(Image, CameraPtr) {
120120
EXPECT_ANY_THROW(image.CameraPtr());
121121
}
122122

123+
TEST(Image, FramePtr) {
124+
Rig rig;
125+
rig.SetRigId(1);
126+
rig.AddRefSensor(sensor_t(SensorType::CAMERA, 1));
127+
Frame frame;
128+
frame.SetFrameId(1);
129+
frame.SetRigPtr(&rig);
130+
Image image;
131+
image.SetImageId(1);
132+
image.SetCameraId(1);
133+
image.SetFrameId(1);
134+
EXPECT_ANY_THROW(image.SetFramePtr(&frame));
135+
frame.AddDataId(image.DataId());
136+
image.SetFramePtr(&frame);
137+
}
138+
123139
TEST(Image, SetResetPose) {
124140
Rig rig;
125141
rig.SetRigId(1);
@@ -128,7 +144,9 @@ TEST(Image, SetResetPose) {
128144
frame.SetFrameId(1);
129145
frame.SetRigPtr(&rig);
130146
Image image;
147+
image.SetImageId(1);
131148
image.SetCameraId(1);
149+
frame.AddDataId(image.DataId());
132150
image.SetFrameId(1);
133151
image.SetFramePtr(&frame);
134152
EXPECT_FALSE(image.HasPose());
@@ -152,7 +170,9 @@ TEST(Image, ConstructCopy) {
152170
frame.SetRigFromWorld(Rigid3d());
153171
frame.SetRigPtr(&rig);
154172
Image image;
173+
image.SetImageId(1);
155174
image.SetCameraId(1);
175+
frame.AddDataId(image.DataId());
156176
image.SetFrameId(1);
157177
image.SetFramePtr(&frame);
158178
Image image_copy = Image(image);
@@ -172,7 +192,9 @@ TEST(Image, AssignCopy) {
172192
frame.SetRigFromWorld(Rigid3d());
173193
frame.SetRigPtr(&rig);
174194
Image image;
195+
image.SetImageId(1);
175196
image.SetCameraId(1);
197+
frame.AddDataId(image.DataId());
176198
image.SetFrameId(1);
177199
image.SetFramePtr(&frame);
178200
Image image_copy = image;
@@ -278,7 +300,9 @@ TEST(Image, ProjectionCenter) {
278300
frame.SetRigFromWorld(Rigid3d());
279301
frame.SetRigPtr(&rig);
280302
Image image;
303+
image.SetImageId(1);
281304
image.SetCameraId(1);
305+
frame.AddDataId(image.DataId());
282306
image.SetFrameId(1);
283307
image.SetFramePtr(&frame);
284308
EXPECT_EQ(image.ProjectionCenter(), Eigen::Vector3d::Zero());
@@ -293,7 +317,9 @@ TEST(Image, ViewingDirection) {
293317
frame.SetRigFromWorld(Rigid3d());
294318
frame.SetRigPtr(&rig);
295319
Image image;
320+
image.SetImageId(1);
296321
image.SetCameraId(1);
322+
frame.AddDataId(image.DataId());
297323
image.SetFrameId(1);
298324
image.SetFramePtr(&frame);
299325
EXPECT_EQ(image.ViewingDirection(), Eigen::Vector3d(0, 0, 1));
@@ -308,7 +334,9 @@ TEST(Image, ProjectPoint) {
308334
frame.SetRigFromWorld(Rigid3d());
309335
frame.SetRigPtr(&rig);
310336
Image image;
337+
image.SetImageId(1);
311338
image.SetCameraId(1);
339+
frame.AddDataId(image.DataId());
312340
image.SetFrameId(1);
313341
image.SetFramePtr(&frame);
314342
Camera camera =

0 commit comments

Comments
 (0)