Skip to content

Commit 2464227

Browse files
committed
Implement touching point methods
1 parent 351b27c commit 2464227

File tree

4 files changed

+32
-2
lines changed

4 files changed

+32
-2
lines changed

src/spritemodel.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -157,7 +157,7 @@ bool SpriteModel::touchingClones(const std::vector<libscratchcpp::Sprite *> &clo
157157

158158
bool SpriteModel::touchingPoint(double x, double y) const
159159
{
160-
return false;
160+
return m_renderedTarget->containsScratchPoint(x, y);
161161
}
162162

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

src/stagemodel.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -94,7 +94,7 @@ bool StageModel::touchingClones(const std::vector<libscratchcpp::Sprite *> &clon
9494

9595
bool StageModel::touchingPoint(double x, double y) const
9696
{
97-
return false;
97+
return m_renderedTarget->containsScratchPoint(x, y);
9898
}
9999

100100
void StageModel::loadCostume()

test/target_models/spritemodel_test.cpp

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -318,6 +318,20 @@ TEST(SpriteModelTest, FastBoundingRect)
318318
ASSERT_EQ(bounds.bottom(), rect.bottom());
319319
}
320320

321+
TEST(SpriteModelTest, TouchingPoint)
322+
{
323+
SpriteModel model;
324+
325+
RenderedTargetMock renderedTarget;
326+
model.setRenderedTarget(&renderedTarget);
327+
328+
EXPECT_CALL(renderedTarget, containsScratchPoint(56.3, -179.4)).WillOnce(Return(false));
329+
ASSERT_FALSE(model.touchingPoint(56.3, -179.4));
330+
331+
EXPECT_CALL(renderedTarget, containsScratchPoint(-20.08, 109.47)).WillOnce(Return(true));
332+
ASSERT_TRUE(model.touchingPoint(-20.08, 109.47));
333+
}
334+
321335
TEST(SpriteModelTest, RenderedTarget)
322336
{
323337
SpriteModel model;

test/target_models/stagemodel_test.cpp

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,8 @@
99
using namespace scratchcpprender;
1010
using namespace libscratchcpp;
1111

12+
using ::testing::Return;
13+
1214
TEST(StageModelTest, Constructors)
1315
{
1416
StageModel model1;
@@ -106,6 +108,20 @@ TEST(StageModelTest, OnBubbleTextChanged)
106108
ASSERT_EQ(spy.count(), 2);
107109
}
108110

111+
TEST(StageModelTest, TouchingPoint)
112+
{
113+
StageModel model;
114+
115+
RenderedTargetMock renderedTarget;
116+
model.setRenderedTarget(&renderedTarget);
117+
118+
EXPECT_CALL(renderedTarget, containsScratchPoint(56.3, -179.4)).WillOnce(Return(false));
119+
ASSERT_FALSE(model.touchingPoint(56.3, -179.4));
120+
121+
EXPECT_CALL(renderedTarget, containsScratchPoint(-20.08, 109.47)).WillOnce(Return(true));
122+
ASSERT_TRUE(model.touchingPoint(-20.08, 109.47));
123+
}
124+
109125
TEST(StageModelTest, RenderedTarget)
110126
{
111127
StageModel model;

0 commit comments

Comments
 (0)