Salome HOME
[MEDCalc] Fully functional scalar map (other pres deactivated)
[modules/med.git] / src / MEDCalc / cmp / MEDPresentationManager_i.txx
index eb283bf152986e6e60abcb850c3e4dd16c52e227..80f5e84f89b44204109c97efaa6f712129dde2e7 100644 (file)
 
 template<typename PresentationType, typename PresentationParameters>
 MEDPresentation::TypeID
-MEDPresentationManager_i::_makePresentation(PresentationParameters params)
+MEDPresentationManager_i::_makePresentation(const PresentationParameters params, const MEDCALC::MEDPresentationViewMode viewMode)
 {
+  // Replace = Remove then add
+  if (viewMode == MEDCALC::VIEW_MODE_REPLACE) {
+    MEDPresentation::TypeID currentPresentationId = _getActivePresentationId();
+    if (currentPresentationId > -1)
+      removePresentation(currentPresentationId);
+  }
+
   // Create a new presentation instance
   PresentationType* presentation = NULL;
   try {
-    presentation = new PresentationType(params);  // on stack or on heap?? stack for now
+    presentation = new PresentationType(params, viewMode);  // on stack or on heap?? heap for now
   }
   catch (const std::exception& e) {
     std::cerr << e.what() << std::endl;
@@ -42,7 +49,7 @@ MEDPresentationManager_i::_makePresentation(PresentationParameters params)
 
 template<typename PresentationType, typename PresentationParameters>
 void
-MEDPresentationManager_i::_updatePresentation(MEDPresentation::TypeID presentationID, PresentationParameters params)
+MEDPresentationManager_i::_updatePresentation(MEDPresentation::TypeID presentationID, const PresentationParameters params)
 {
   MEDPresentation* presentation = _getPresentation(presentationID);
   if (!presentation) {
@@ -53,4 +60,18 @@ MEDPresentationManager_i::_updatePresentation(MEDPresentation::TypeID presentati
   presentation->updatePipeline<PresentationType>(params);
 }
 
+template<typename PresentationType, typename PresentationParameters>
+void
+MEDPresentationManager_i::_getParameters(MEDPresentation::TypeID presentationID, PresentationParameters & params) const
+{
+  MEDPresentation* presentation = _getPresentation(presentationID);
+  if (!presentation) {
+    std::cerr << "_getParameters(): presentation not found!!" << std::endl;
+    return;
+  }
+
+  presentation->getParameters<PresentationType>(params);
+}
+
+
 #endif // _MED_PRESENTATION_MANAGER_I_TXX_