Mercurial > hg > orthanc-stone
comparison Applications/StoneWebViewer/WebAssembly/StoneWebViewer.cpp @ 2030:f36de3ba43c8
added button "Stretch to whole range" in the "Change windowing" menu
author | Sebastien Jodogne <s.jodogne@gmail.com> |
---|---|
date | Fri, 23 Dec 2022 17:30:12 +0100 |
parents | 6099c7925202 |
children | a56f7ed0cdf9 07964689cb0b |
comparison
equal
deleted
inserted
replaced
2028:0d8a07e98cb8 | 2030:f36de3ba43c8 |
---|---|
3092 { | 3092 { |
3093 observer_->SignalWindowingUpdated(*this, windowingCenter, windowingWidth); | 3093 observer_->SignalWindowingUpdated(*this, windowingCenter, windowingWidth); |
3094 } | 3094 } |
3095 } | 3095 } |
3096 | 3096 |
3097 void StretchWindowing() | |
3098 { | |
3099 float minValue, maxValue; | |
3100 | |
3101 { | |
3102 std::unique_ptr<OrthancStone::IViewport::ILock> lock(viewport_->Lock()); | |
3103 | |
3104 if (!lock->GetController().GetScene().HasLayer(LAYER_TEXTURE) || | |
3105 lock->GetController().GetScene().GetLayer(LAYER_TEXTURE).GetType() != | |
3106 OrthancStone::ISceneLayer::Type_FloatTexture) | |
3107 { | |
3108 return; | |
3109 } | |
3110 | |
3111 const Orthanc::ImageAccessor& texture = | |
3112 dynamic_cast<OrthancStone::FloatTextureSceneLayer&>( | |
3113 lock->GetController().GetScene().GetLayer(LAYER_TEXTURE)).GetTexture(); | |
3114 if (texture.GetFormat() != Orthanc::PixelFormat_Float32) | |
3115 { | |
3116 throw Orthanc::OrthancException(Orthanc::ErrorCode_InternalError); | |
3117 } | |
3118 | |
3119 Orthanc::ImageProcessing::GetMinMaxFloatValue(minValue, maxValue, texture); | |
3120 } | |
3121 | |
3122 SetWindowing((minValue + maxValue) / 2.0f, maxValue - minValue); | |
3123 } | |
3124 | |
3097 void FlipX() | 3125 void FlipX() |
3098 { | 3126 { |
3099 { | 3127 { |
3100 std::unique_ptr<OrthancStone::IViewport::ILock> lock(viewport_->Lock()); | 3128 std::unique_ptr<OrthancStone::IViewport::ILock> lock(viewport_->Lock()); |
3101 lock->GetController().GetScene().FlipViewportX( | 3129 lock->GetController().GetScene().FlipViewportX( |
4269 EXTERN_CATCH_EXCEPTIONS; | 4297 EXTERN_CATCH_EXCEPTIONS; |
4270 } | 4298 } |
4271 | 4299 |
4272 | 4300 |
4273 EMSCRIPTEN_KEEPALIVE | 4301 EMSCRIPTEN_KEEPALIVE |
4302 void StretchWindowing(const char* canvas) | |
4303 { | |
4304 try | |
4305 { | |
4306 GetViewport(canvas)->StretchWindowing(); | |
4307 } | |
4308 EXTERN_CATCH_EXCEPTIONS; | |
4309 } | |
4310 | |
4311 | |
4312 EMSCRIPTEN_KEEPALIVE | |
4274 void InvertContrast(const char* canvas) | 4313 void InvertContrast(const char* canvas) |
4275 { | 4314 { |
4276 try | 4315 try |
4277 { | 4316 { |
4278 GetViewport(canvas)->Invert(); | 4317 GetViewport(canvas)->Invert(); |