#include <HYDROData_Image.h>
+#include <HYDROOperations_Factory.h>
+
#include <GraphicsView_ViewFrame.h>
#include <GraphicsView_ViewManager.h>
#include <GraphicsView_ViewPort.h>
#include <GraphicsView_Viewer.h>
+#include <ImageComposer_CutOperator.h>
+#include <ImageComposer_CropOperator.h>
+#include <ImageComposer_FuseOperator.h>
+
#include <LightApp_Application.h>
#include <LightApp_GVSelector.h>
#include <LightApp_SelectionMgr.h>
return new HYDROGUI_Module();
}
+extern "C" HYDRO_EXPORT char* getModuleVersion()
+{
+ return (char*)HYDRO_VERSION;
+}
+
HYDROGUI_Module::HYDROGUI_Module()
: LightApp_Module( "HYDRO" ),
myDisplayer( 0 ),
bool anIsHiddenInSelection = false;
bool anIsImage = false;
+ bool anIsImportedImage = false;
bool anIsCompositeImage = false;
+ bool anIsFusedImage = false;
+ bool anIsCutImage = false;
+ bool anIsSplittedImage = false;
bool anIsMustBeUpdatedImage = false;
bool anIsPolyline = false;
bool anIsVisualState = false;
Handle(HYDROData_Image) anImage = Handle(HYDROData_Image)::DownCast( anObject );
if( !anImage.IsNull() )
{
+ anIsImportedImage = anImage->HasTrsfPoints() && !anImage->IsSelfSplitted();
anIsCompositeImage = anImage->NbReferences() > 0;
+ if( HYDROOperations_Factory* aFactory = HYDROOperations_Factory::Factory() )
+ {
+ if( ImageComposer_Operator* anOperator = aFactory->Operator( anImage ) )
+ {
+ if( dynamic_cast<ImageComposer_FuseOperator*>( anOperator ) )
+ anIsFusedImage = true;
+ else if( dynamic_cast<ImageComposer_CutOperator*>( anOperator ) )
+ anIsCutImage = true;
+ else if( dynamic_cast<ImageComposer_CropOperator*>( anOperator ) )
+ anIsSplittedImage = true;
+ }
+ }
anIsMustBeUpdatedImage = anImage->MustBeUpdated();
}
}
{
if( anIsImage )
{
- theMenu->addAction( action( anIsCompositeImage ? EditCompositeImageId : EditImportedImageId ) );
+ if( anIsImportedImage )
+ theMenu->addAction( action( EditImportedImageId ) );
+ else if( anIsCompositeImage )
+ {
+ if( anIsFusedImage )
+ theMenu->addAction( action( EditFusedImageId ) );
+ else if( anIsCutImage )
+ theMenu->addAction( action( EditCutImageId ) );
+ else if( anIsSplittedImage )
+ theMenu->addAction( action( EditSplittedImageId ) );
+ }
+
theMenu->addAction( action( ObserveImageId ) );
theMenu->addAction( action( ExportImageId ) );
theMenu->addSeparator();