void FaceAttribsEditor::OnYOffsetChanged(SpinControlEvent& event) {
            if (IsBeingDeleted()) return;

            Model::ChangeBrushFaceAttributesRequest request;
            if (event.IsSpin())
                request.addYOffset(static_cast<float>(event.GetValue()));
            else
                request.setYOffset(static_cast<float>(event.GetValue()));
            
            MapDocumentSPtr document = lock(m_document);
            if (!document->setFaceAttributes(request) || event.IsSpin())
                event.Veto();
        }
        void RotateObjectsToolPage::OnAngleChanged(SpinControlEvent& event) {
            if (IsBeingDeleted()) return;

            const double newAngleDegs = Math::correct(event.IsSpin() ? m_angle->GetValue() + event.GetValue() : event.GetValue());
            m_angle->SetValue(newAngleDegs);
            m_tool->setAngle(Math::radians(newAngleDegs));
        }
 void FaceInspector::OnRotationChanged(SpinControlEvent& event) {
     if (!m_documentViewHolder.valid())
         return;
     Model::MapDocument& document = m_documentViewHolder.document();
     const Model::FaceList& faces = document.editStateManager().allSelectedFaces();
     Controller::SetFaceAttributesCommand* command = new Controller::SetFaceAttributesCommand(document, faces, "Set Rotation");
     command->setRotation(static_cast<float>(event.GetValue()));
     document.GetCommandProcessor()->Submit(command);
 }