Skip to content

Commit ee71b83

Browse files
committed
Implement SpriteModel::boundingRect()
1 parent a6314ed commit ee71b83

File tree

2 files changed

+19
-1
lines changed

2 files changed

+19
-1
lines changed

src/spritemodel.cpp

+1-1
Original file line numberDiff line numberDiff line change
@@ -93,7 +93,7 @@ void SpriteModel::onGraphicsEffectsCleared()
9393

9494
libscratchcpp::Rect SpriteModel::boundingRect() const
9595
{
96-
return libscratchcpp::Rect(m_sprite->x(), m_sprite->y(), m_sprite->x(), m_sprite->y());
96+
return m_renderedTarget->getBounds();
9797
}
9898

9999
libscratchcpp::Sprite *SpriteModel::sprite() const

test/target_models/spritemodel_test.cpp

+18
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,8 @@
88
using namespace scratchcpprender;
99
using namespace libscratchcpp;
1010

11+
using ::testing::Return;
12+
1113
TEST(SpriteModelTest, Constructors)
1214
{
1315
SpriteModel model1;
@@ -175,6 +177,22 @@ TEST(SpriteModelTest, OnLayerOrderChanged)
175177
model.onLayerOrderChanged(7);
176178
}
177179

180+
TEST(SpriteModelTest, BoundingRect)
181+
{
182+
SpriteModel model;
183+
184+
RenderedTargetMock renderedTarget;
185+
model.setRenderedTarget(&renderedTarget);
186+
187+
Rect rect(-1, 1, 1, -1);
188+
EXPECT_CALL(renderedTarget, getBounds()).WillOnce(Return(rect));
189+
Rect bounds = model.boundingRect();
190+
ASSERT_EQ(bounds.left(), rect.left());
191+
ASSERT_EQ(bounds.top(), rect.top());
192+
ASSERT_EQ(bounds.right(), rect.right());
193+
ASSERT_EQ(bounds.bottom(), rect.bottom());
194+
}
195+
178196
TEST(SpriteModelTest, RenderedTarget)
179197
{
180198
SpriteModel model;

0 commit comments

Comments
 (0)