void SizeAdapter::updateGui(const ::Atlas::Message::Element& element) { SelfUpdateContext context(*this); WFMath::AxisBox<3> axisBox; try { axisBox.fromAtlas(element.asList()); } catch (...) { axisBox = WFMath::AxisBox<3>(WFMath::Point<3>(-0.5, -0.5, -0.5), WFMath::Point<3>(0.5, 0.5, 0.5)); } if (mWidgets.lowerXWindow) { mWidgets.lowerXWindow->setText(ValueTypeHelper<float, std::string>::convert(axisBox.lowCorner().x())); } if (mWidgets.lowerYWindow) { mWidgets.lowerYWindow->setText(ValueTypeHelper<float, std::string>::convert(axisBox.lowCorner().y())); } if (mWidgets.lowerZWindow) { mWidgets.lowerZWindow->setText(ValueTypeHelper<float, std::string>::convert(axisBox.lowCorner().z())); } if (mWidgets.upperXWindow) { mWidgets.upperXWindow->setText(ValueTypeHelper<float, std::string>::convert(axisBox.highCorner().x())); } if (mWidgets.upperYWindow) { mWidgets.upperYWindow->setText(ValueTypeHelper<float, std::string>::convert(axisBox.highCorner().y())); } if (mWidgets.upperZWindow) { mWidgets.upperZWindow->setText(ValueTypeHelper<float, std::string>::convert(axisBox.highCorner().z())); } updateInfo(); }
void SizeAdapter::updateGui(const ::Atlas::Message::Element& element) { AdapterSelfUpdateContext context(*this); WFMath::AxisBox<3> axisBox; try { axisBox.fromAtlas(element.asList()); } catch (...) { axisBox = WFMath::AxisBox<3>(WFMath::Point<3>(-0.5, -0.5, -0.5), WFMath::Point<3>(0.5, 0.5, 0.5)); } if (mLowerXWindow) { mLowerXWindow->setText(toString(axisBox.lowCorner().x())); } if (mLowerYWindow) { mLowerYWindow->setText(toString(axisBox.lowCorner().y())); } if (mLowerZWindow) { mLowerZWindow->setText(toString(axisBox.lowCorner().z())); } if (mUpperXWindow) { mUpperXWindow->setText(toString(axisBox.highCorner().x())); } if (mUpperYWindow) { mUpperYWindow->setText(toString(axisBox.highCorner().y())); } if (mUpperZWindow) { mUpperZWindow->setText(toString(axisBox.highCorner().z())); } updateInfo(); }
bool SizeAdapter::_hasChanges() { WFMath::AxisBox<3> newBox; try { newBox.fromAtlas(getValue()); } catch (...) { return false; } try { WFMath::AxisBox<3> originalBox; originalBox.fromAtlas(mOriginalValue); return originalBox != newBox; } catch (...) { //We have an invalid original element, but a valid new element, so we'll consider ourselves changed return true; } }
void SizeAdapter::updateInfo() { WFMath::AxisBox<3> newBox; newBox.fromAtlas(getValue()); std::stringstream ss; ss.precision(4); ss << "w: " << (newBox.highCorner().x() - newBox.lowCorner().x()) << " d: " << (newBox.highCorner().y() - newBox.lowCorner().y()) << " h: " << (newBox.highCorner().z() - newBox.lowCorner().z()); mWidgets.infoWindow->setText(ss.str()); }
bool SizeAdapter::slider_ValueChanged(const CEGUI::EventArgs& e) { float value = mWidgets.scaler->getCurrentValue(); WFMath::AxisBox<3> newBox; try { newBox.fromAtlas(mOriginalValue); } catch (...) { newBox = WFMath::AxisBox<3>(WFMath::Point<3>(-0.5f, -0.5f, -0.5f), WFMath::Point<3>(0.5, 0.5, 0.5)); } WFMath::Point<3> lowerPoint = newBox.lowCorner(); WFMath::Point<3> upperPoint = newBox.highCorner(); lowerPoint.x() *= value; lowerPoint.y() *= value; lowerPoint.z() *= value; upperPoint.x() *= value; upperPoint.y() *= value; upperPoint.z() *= value; newBox.setCorners(lowerPoint, upperPoint); // newBox *= value; updateGui(newBox.toAtlas()); return true; }