Skip to content

Commit cdbe41c

Browse files
committed
Wired it all up, and it works! Closes #2077
1 parent 2effc74 commit cdbe41c

File tree

3 files changed

+9
-12
lines changed

3 files changed

+9
-12
lines changed

src/Interface/Modules/Render/ES/ObjectTransformCalculators.h

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -83,6 +83,7 @@ namespace SCIRun
8383
{
8484
public:
8585
explicit TransformCalculatorFamily(const Graphics::Datatypes::WidgetMovementFamily& movements, ObjectTransformCalculatorFactoryPtr factory);
86+
Graphics::Datatypes::WidgetMovement baseMovement() const { return movements_.base; }
8687
ObjectTransformCalculatorPtr calcFor(Graphics::Datatypes::WidgetBase* widget, Graphics::Datatypes::WidgetMovement movement);
8788
private:
8889
Graphics::Datatypes::WidgetMovementFamily movements_;
@@ -93,7 +94,7 @@ namespace SCIRun
9394
class SCISHARE WidgetTransformEvent : public Graphics::Datatypes::WidgetEvent
9495
{
9596
public:
96-
WidgetTransformEvent();
97+
WidgetTransformEvent(ObjectTransformer* transformer, std::shared_ptr<TransformCalculatorFamily> calcFamily);
9798
~WidgetTransformEvent();
9899
Graphics::Datatypes::WidgetMovement baseMovement() const override;
99100
void move(Graphics::Datatypes::WidgetBase* widget, Graphics::Datatypes::WidgetMovement moveType) const override;

src/Interface/Modules/Render/ES/SRInterface.cc

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -375,7 +375,7 @@ void SRInterface::runGCOnNextExecution()
375375
void WidgetUpdateService::reset()
376376
{
377377
currentWidget_.reset();
378-
//currentTransformationCalculators_.clear();
378+
event_.reset();
379379
}
380380

381381
class ScopedLambdaExecutor

src/Interface/Modules/Render/ES/WidgetHandling.cc

Lines changed: 6 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -91,20 +91,16 @@ void WidgetUpdateService::setCurrentWidget(WidgetHandle w)
9191

9292
void WidgetUpdateService::doPostSelectSetup(int x, int y, float depth)
9393
{
94-
logCritical("{} {} {} {}", __FUNCTION__, x, y, depth);
9594
auto initialW = getInitialW(depth);
9695
auto initialPosition = screen_.positionFromClick(x, y);
9796

9897
auto factory = boost::make_shared<ObjectTransformCalculatorFactory>(this, initialPosition, initialW);
9998
auto tcf = std::make_shared<TransformCalculatorFamily>(movements_, factory);
100-
101-
99+
event_ = boost::make_shared<WidgetTransformEvent>(transformer_, tcf);
102100
}
103101

104102
void WidgetUpdateService::updateWidget(int x, int y)
105103
{
106-
logCritical("{} {} {}", __FUNCTION__, x, y);
107-
108104
if (event_)
109105
{
110106
event_->transformAt(x, y);
@@ -116,7 +112,6 @@ void WidgetUpdateService::updateWidget(int x, int y)
116112
class WidgetTransformEvent::WidgetTransformEventImpl
117113
{
118114
public:
119-
WidgetMovement baseMovement_;
120115
int x_ {0}, y_ {0};
121116
ObjectTransformer* transformer_{ nullptr };
122117
std::shared_ptr<TransformCalculatorFamily> calcFamily_;
@@ -154,19 +149,20 @@ ObjectTransformCalculatorPtr TransformCalculatorFamily::calcFor(WidgetBase* widg
154149
return calcs_[widget];
155150
}
156151

157-
WidgetTransformEvent::WidgetTransformEvent() : impl_(new WidgetTransformEventImpl)
152+
WidgetTransformEvent::WidgetTransformEvent(ObjectTransformer* transformer,
153+
std::shared_ptr<TransformCalculatorFamily> calcFamily) : impl_(new WidgetTransformEventImpl)
158154
{
159-
155+
impl_->transformer_ = transformer;
156+
impl_->calcFamily_ = calcFamily;
160157
}
161158

162159
Graphics::Datatypes::WidgetMovement WidgetTransformEvent::baseMovement() const
163160
{
164-
return impl_->baseMovement_;
161+
return impl_->calcFamily_->baseMovement();
165162
}
166163

167164
void WidgetTransformEvent::move(WidgetBase* widget, WidgetMovement moveType) const
168165
{
169-
logCritical("{}", __FUNCTION__);
170166
if (widget)
171167
{
172168
auto calc = impl_->calcFamily_->calcFor(widget, moveType);

0 commit comments

Comments
 (0)