]> Creatis software - bbtkGEditor.git/blobdiff - lib/EditorGraphicBBS/bbsWxGUIEditorGraphic/wxVtkSceneManager.cxx
#3249 Change FontSize - Box graphic scale
[bbtkGEditor.git] / lib / EditorGraphicBBS / bbsWxGUIEditorGraphic / wxVtkSceneManager.cxx
index 6c6b1b0fb5bf09d105abdb35c705080f3f8e7811..07b43058ccffe014b0bdce97850b8266b79d2c97 100644 (file)
@@ -137,47 +137,41 @@ wxVtkSceneManager::~wxVtkSceneManager()
 void wxVtkSceneManager::configureBaseView() 
 {
        vtkInteractorStyleBaseView2D *interactorstylebaseview = vtkInteractorStyleBaseView2D::New();
-
        _baseView->SetInteractorStyleBaseView(interactorstylebaseview);
-
        // Important to activate the 2D interaction system
        crea::wxVTKRenderWindowInteractor *iren =       _baseView->GetWxVTKRenderWindowInteractor();
        interactorstylebaseview->SetInteractor(iren);
        iren->SetInteractorStyle(interactorstylebaseview);
        interactorstylebaseview->SetwxVtkBaseView(_baseView);
-
        _baseView->GetRenderer()->GetActiveCamera()->ParallelProjectionOn();
        _baseView->GetRenderer()->ResetCamera(-100, 100, -100, 100, -1000, 1000);
-       _baseView->GetRenderer()->GetActiveCamera()->Zoom(10);
-
-
+       _baseView->GetRenderer()->GetActiveCamera()->Zoom(20);
        _baseView->GetRenderer()->SetBackground(0.9, 0.9, 0.9);
        _baseView->GetRenderer()->GradientBackgroundOn();
-
        // Actos Port_Text
        _textActor = vtkTextActor3D::New();
 //     _textActor = vtkTextActor::New();
        _textActor->SetPosition(-9999, -9999, GPOSITION_Z);
        _textActor->SetInput("<void>");
-       _textActor->GetTextProperty()->SetFontSize(60);
+//EED 2022-01-16
+//    _textActor->GetTextProperty()->SetFontSize(60);
+       _textActor->GetTextProperty()->SetFontSize(40);
        _textActor->GetTextProperty()->BoldOn();
+    _textActor->GetTextProperty()->SetFontFamilyToArial();
+    _textActor->GetTextProperty()->ShadowOff();
        _textActor->GetTextProperty()->SetColor(PORTTEXT_NH_R, PORTTEXT_NH_G,PORTTEXT_NH_B);
-
        _baseView->GetRenderer()->AddActor(_textActor);
-
        // Actor  Fill_Port_Text
-
        //------------
-       double xInic = 0;
-       double yInic = 0;
-       double zInic = GPOSITION_Z;
-
-       vtkPolygon *aPolygon = vtkPolygon::New();
-       _fillObjectActor = vtkActor::New();
+       double xInic            = 0;
+       double yInic            = 0;
+       double zInic            = GPOSITION_Z;
+       vtkPolygon *aPolygon    = vtkPolygon::New();
+       _fillObjectActor        = vtkActor::New();
+       _pts                    = vtkPoints::New();
 
-       _pts = vtkPoints::New();
-
-       double w = 100, h = 10, b = h / 15, t = 3;
+/*
+    double w = 100, h = 10, b = h / 15, t = 3;
        _pts->SetNumberOfPoints(21);
        _pts->InsertPoint(0, xInic + w * 0.33 - t / 2, yInic, zInic);
        _pts->InsertPoint(1, xInic + w * 0.33, yInic - t, zInic);
@@ -204,33 +198,43 @@ void wxVtkSceneManager::configureBaseView()
        _pts->InsertPoint(18, xInic + b * 1, yInic + b * 2, zInic);
        _pts->InsertPoint(19, xInic + b * 2, yInic + b * 1, zInic);
        _pts->InsertPoint(20, xInic + b * 4, yInic + b * 0, zInic);
+    aPolygon->GetPointIds()->SetNumberOfIds(21);
+    for (int i = 0; i < 21; i++) {
+    {
+        aPolygon->GetPointIds()->SetId(i, i);
+    }
+*/
 
-       aPolygon->GetPointIds()->SetNumberOfIds(21);
-       for (int i = 0; i < 21; i++) {
+    double w = BOX_WIDTH, h = BOX_HEIGHT, t = PORT_HEIGHT;
+    _pts->SetNumberOfPoints(7);
+    _pts->InsertPoint(0, xInic + t/2.0  , yInic + t     , zInic );
+    _pts->InsertPoint(1, xInic + w      , yInic + t     , zInic );
+    _pts->InsertPoint(2, xInic + w      , yInic + t + h , zInic );
+    _pts->InsertPoint(3, xInic - t*1.5  , yInic + t + h , zInic );
+    _pts->InsertPoint(4, xInic - t*1.5  , yInic + t     , zInic );
+    _pts->InsertPoint(5, xInic - t/2    , yInic + t     , zInic );
+    _pts->InsertPoint(6, xInic          , yInic         , zInic );
+    aPolygon->GetPointIds()->SetNumberOfIds(8);
+       for (int i = 0; i < 8; i++)
+    {
                aPolygon->GetPointIds()->SetId(i, i);
+        if (i==7) aPolygon->GetPointIds()->SetId(i, 0);
        }
-
        vtkUnstructuredGrid *aPolygonGrid = vtkUnstructuredGrid::New();
        aPolygonGrid->Allocate(1, 1);
-       aPolygonGrid->InsertNextCell(aPolygon->GetCellType(),
-                       aPolygon->GetPointIds());
+       aPolygonGrid->InsertNextCell(aPolygon->GetCellType(),aPolygon->GetPointIds());
        aPolygonGrid->SetPoints(_pts);
        _aPolygonMapper = vtkDataSetMapper::New();
-
 //EED 2017-01-01 Migration VTK7
 #if VTK_MAJOR_VERSION <= 5
        _aPolygonMapper->SetInput(aPolygonGrid);
 #else
        _aPolygonMapper->SetInputData(aPolygonGrid);
 #endif
-
-
        _fillObjectActor->SetMapper(_aPolygonMapper);
-       _fillObjectActor->GetProperty()->SetColor(PORTFILL_NH_R, PORTFILL_NH_G,
-                       PORTFILL_NH_B);
+       _fillObjectActor->GetProperty()->SetColor(PORTFILL_NH_R, PORTFILL_NH_G,PORTFILL_NH_B);
        _fillObjectActor->GetProperty()->SetOpacity(0);
        _aPolygonMapper->Modified();
-
        _baseView->GetRenderer()->AddActor(_fillObjectActor);
 }
 
@@ -592,8 +596,11 @@ int wxVtkSceneManager::createGConnector(GPortModel* startPort)
          * @param WidthLine  
          */
  //EED2017
-        manContourView->SetWidthLine( 3 ) ;
-       manContourView->SetShowText(false);
+//        manContourView->SetWidthLine( 3 ) ;
+//EED 2022-01-16
+          manContourView->SetWidthLine( 1 ) ;
+
+    manContourView->SetShowText(false);
 
        manContourControl->SetModelView(manContourModel, manContourView);
 
@@ -880,25 +887,33 @@ bool wxVtkSceneManager::OnMouseMove()
                                        // PortText
                                        if ( ( _bugTextActor_text==desc->getStatusText() ) || (_bugTextActor_status==0) )
                                        {
-                                               _bugTextActor_status    = 1;
-                                               okPortMessage           = true;
-                                               py                      = py + 5;
-                                               _textActor->SetScale(0.1);
-                                               std::string tmp = desc->getStatusText()+"\n";
+                        _bugTextActor_status   = 1;
+                                               okPortMessage               = true;
+//EED 2022-01-16
+//                        py                      = py + 5;
+//                                             _textActor->SetScale(0.1);
+//                        py                         = py + 5*0.5;
+                        _textActor->SetScale(0.05,0.05,1);
+
+                                               std::string tmp         = desc->getStatusText()+"\n";
                                                _textActor->SetInput( tmp.c_str() );
-                                               _textActor->SetPosition(px - 25, py + 1, pz + 2);
+//                      _textActor->SetPosition(px - 25, py + 1, pz + 2);
+//                      _textActor->SetPosition(px  , py-PORT_HEIGHT/4 , pz + 2);
+                                               _textActor->SetPosition(px  , py-PORT_HEIGHT , pz + 2);
                                                _textActor->Modified();
                                                // FillPortText
-                                               px                      = px - 33;
-                                               //py = py;
-                                               _fillObjectActor->SetScale(1);
-                                               _fillObjectActor->GetProperty()->SetOpacity(0.50);
-                                               _fillObjectActor->SetPosition(px, py, 1);
+//EED 2022-01-16
+//                        px                         = px - 33;
+                        _fillObjectActor->SetScale(1);
+//                        px                         = px - 33*0.7;
+//                                             _fillObjectActor->SetScale(0.7,0.5,1);
+                                               _fillObjectActor->GetProperty()->SetOpacity(0.75);
+                                               _fillObjectActor->SetPosition( px, py + PORT_HEIGHT/2.0 , 1);
                                                _aPolygonMapper->Modified();
                                        } else {
-                                               _bugTextActor_status    = 2;
+                                               _bugTextActor_status= 2;
                                        } //  _bugTextActor_tex
-                                       _bugTextActor_text              = desc->getStatusText();
+                                       _bugTextActor_text                  = desc->getStatusText();
 
                                } // if GPORT
                        }  //if state
@@ -1953,6 +1968,9 @@ void wxVtkSceneManager::loadDiagram(stringstream &inputStream)
                        if (line == "# - BBTKGEditor v 1.4 BBG BlackBox Diagram file") {
                                version = line.substr(18, 3);
                        }
+            if (line == "# - BBTKGEditor v 1.5 BBG BlackBox Diagram file") {
+                version = line.substr(18, 3);
+            }
                } else if (line == "APP_START") {
                        start = true;
                        break;
@@ -1960,7 +1978,8 @@ void wxVtkSceneManager::loadDiagram(stringstream &inputStream)
        }
 
 
-       if (start) {
+       if (start)
+    {
 
                if ((version != "1.0") && (version != "1.1")) {
                        getCleanLine(inputStream, line);//CATEGORY:<category of the box>
@@ -1993,10 +2012,12 @@ void wxVtkSceneManager::loadDiagram(stringstream &inputStream)
                result = strtok(NULL, delims);
                std::string isComplexBox(result);
 
-               if (isComplexBox == "TRUE") {
+               if (isComplexBox == "TRUE")
+        {
                        _isComplexBox = true;
 
-                       if ((version != "1.0") && (version != "1.1")) {
+                       if ((version != "1.0") && (version != "1.1"))
+            {
                                getCleanLine(inputStream, line);//COMPLEXNAME:<name of the complex box>
                                char complexboxnameTmp[255];
                                strcpy(complexboxnameTmp, line.c_str());
@@ -2010,7 +2031,7 @@ void wxVtkSceneManager::loadDiagram(stringstream &inputStream)
                                result = strtok(packagenameTmp, delims);
                                result = strtok(NULL, delims);
                                SetCbPackageName(result);
-                       }
+                       } // if version !1.0  !1.1
 
                        if(version < "1.4")
                        {
@@ -2027,7 +2048,8 @@ void wxVtkSceneManager::loadDiagram(stringstream &inputStream)
                                std::istringstream inps(result);
                                inps >> numInputs;
 
-                               for (int i = 0; i < numInputs; i++) {
+                               for (int i = 0; i < numInputs; i++)
+                {
                                        //----------
                                        getCleanLine(inputStream, line);//COMPLEX_PORT
                                        getCleanLine(inputStream, line);//name
@@ -2055,14 +2077,14 @@ void wxVtkSceneManager::loadDiagram(stringstream &inputStream)
                                        if (version<="1.2")
                                        {
                                                if (zIn==900) zIn=GPOSITION_Z;
-                                       }
+                                       } // if version <=1.2
 
                                        getCleanLine(inputStream, line);//FIN_COMPLEX_PORT
 
                                        configGComBoxInputOutputPort(true, inputPortName, xIn, yIn, zIn);
 
                                } // for input complex box
-                       }
+                       } // if version < 1.4
 
 
 
@@ -2080,7 +2102,8 @@ void wxVtkSceneManager::loadDiagram(stringstream &inputStream)
                        std::istringstream outps(result);
                        outps >> numOutputs;
 
-                       for (int i = 0; i < numOutputs; i++) {
+                       for (int i = 0; i < numOutputs; i++)
+            {
                                //----------
                                getCleanLine(inputStream, line);//COMPLEX_PORT
                                getCleanLine(inputStream, line);//name
@@ -2109,15 +2132,21 @@ void wxVtkSceneManager::loadDiagram(stringstream &inputStream)
                                {
                                        if (zIn==900) zIn=GPOSITION_Z;
                                }
-                               
+//EED 2022-01-16
+                if (version<="1.4")
+                {
+                    xIn = xIn*0.70;
+                    yIn = yIn*0.30;
+                }
+
                                getCleanLine(inputStream, line);//FIN_COMPLEX_PORT
 
                                configGComBoxInputOutputPort(false, outputPortName, xIn, yIn, zIn);
 
                        } // for output complex box
+               } // if isComplexBox
 
-               } // complex box
-
+        
                // RaC2012 2nd Hackfest
                if(version >= "1.4")
                {
@@ -2134,13 +2163,11 @@ void wxVtkSceneManager::loadDiagram(stringstream &inputStream)
                        std::istringstream inps(result);
                        inps >> numInputs;
 
-                       for (int i = 0; i < numInputs; i++) {
-                               //----------
+                       for (int i = 0; i < numInputs; i++)
+            {
                                getCleanLine(inputStream, line);//COMPLEX_PORT
                                getCleanLine(inputStream, line);//name
                                std::string inputPortName(line);
-
-                               //----------
                                getCleanLine(inputStream, line);//xInic:yInic:zInic
                                char coord[80];
                                strcpy(coord, line.c_str());
@@ -2150,7 +2177,6 @@ void wxVtkSceneManager::loadDiagram(stringstream &inputStream)
                                std::string yInic(result);
                                result = strtok(NULL, delims);//zInic
                                std::string zInic(result);
-
                                double xIn, yIn, zIn;
                                std::istringstream xSt(xInic);
                                xSt >> xIn;
@@ -2158,18 +2184,20 @@ void wxVtkSceneManager::loadDiagram(stringstream &inputStream)
                                ySt >> yIn;
                                std::istringstream zSt(zInic);
                                zSt >> zIn;
-
                                if (version<="1.2")
                                {
                                        if (zIn==900) zIn=GPOSITION_Z;
                                }
-                               
+//EED 2022-01-16
+                if (version<="1.4")
+                {
+                    xIn = xIn*0.70;
+                    yIn = yIn*0.30;
+                }
                                getCleanLine(inputStream, line);//FIN_COMPLEX_PORT
                                configGComBoxInputOutputPort(true, inputPortName, xIn, yIn, zIn);
-
                        } // for external input
-               }
-
+               }   //      if(version >= "1.4")
 
                //----------
                getCleanLine(inputStream, line);//BOXES:num
@@ -2214,7 +2242,6 @@ void wxVtkSceneManager::loadDiagram(stringstream &inputStream)
                        std::string yInic(result);
                        result = strtok(NULL, delims);//zInic
                        std::string zInic(result);
-
                        double xIn, yIn, zIn;
                        std::istringstream xSt(xInic);
                        xSt >> xIn;
@@ -2223,13 +2250,16 @@ void wxVtkSceneManager::loadDiagram(stringstream &inputStream)
                        std::istringstream zSt(zInic);
                        zSt >> zIn;
 
-                       
                        if (version<="1.2")
                        {
                                if (zIn==900) zIn=GPOSITION_Z;
                        }
-                       
-                       
+//EED 2022-01-16
+            if (version<="1.4")
+            {
+                xIn = xIn*0.70;
+                yIn = yIn*0.30;
+            }
                        //----------
                        getCleanLine(inputStream, line);//xEnd:yEnd:zEnd
                        strcpy(coord, line.c_str());
@@ -2252,7 +2282,8 @@ void wxVtkSceneManager::loadDiagram(stringstream &inputStream)
                        {
                                if (zEn==900) zEn=GPOSITION_Z;
                        }
-                       
+//EED 2022-01-16
+            yEn = yIn-BOX_HEIGHT;
                        
                        bool boxExecutable = false;
                        if (isExec == "TRUE") 
@@ -2290,9 +2321,7 @@ void wxVtkSceneManager::loadDiagram(stringstream &inputStream)
                                        strcat(result,tmpString.c_str());
                                }
                                std::string value(result);
-
                                bbmod->setValueToInput(name, value);
-
                                getCleanLine(inputStream, line);//PORT o FIN_BOX
                                port = line.substr(0, 4);
                        } // while
@@ -2307,7 +2336,6 @@ void wxVtkSceneManager::loadDiagram(stringstream &inputStream)
                strcpy(conns, line.c_str());
                result = strtok(conns, delims);
                result = strtok(NULL, delims);
-
                int numConns;
                std::istringstream isCons(result);
                isCons >> numConns;
@@ -2318,7 +2346,6 @@ void wxVtkSceneManager::loadDiagram(stringstream &inputStream)
                        //----------
                        getCleanLine(inputStream, line);//CONNECTION
                        getCleanLine(inputStream, line);//Startbox.PortName:EndBox.PortName
-
                        char connec[200];
                        strcpy(connec, line.c_str());
                        result = strtok(connec, delims);
@@ -2329,28 +2356,23 @@ void wxVtkSceneManager::loadDiagram(stringstream &inputStream)
                        std::string nameEndBox(result);
                        result = strtok(NULL, delims);
                        std::string nameEndPort(result);
-
                        int idCon = configGConnetion(nameStartBox, nameStartPort,nameEndBox, nameEndPort);
-
                        if (version != "1.0") {
                                //Readding control points of the manualContour
-                               GConnectorController *tempp             = (GConnectorController*) _controllers[idCon];
-                               GConnectorModel *conMod                 = (GConnectorModel*) tempp->getModel();
-                               vtkGConnectorView *conView              = (vtkGConnectorView*) tempp->getView();
+                               GConnectorController    *tempp          = (GConnectorController*) _controllers[idCon];
+                               GConnectorModel         *conMod         = (GConnectorModel*) tempp->getModel();
+                               vtkGConnectorView       *conView        = (vtkGConnectorView*) tempp->getView();
                                getCleanLine(inputStream, line); //NumberOfControlPoints:##
                                strcpy(conns, line.c_str());
                                result = strtok(conns, delims);
                                result = strtok(NULL, delims);
-
                                int numberOfControlPoints;
                                std::istringstream isCons(result);
                                isCons >> numberOfControlPoints;
-
                                for (int ii = 0; ii < numberOfControlPoints; ii++) {
                                        getCleanLine(inputStream, line); //XX:YY:ZZ
                                        char connec[200];
                                        strcpy(connec, line.c_str());
-
                                        double px, py, pz;
                                        result = strtok(connec, delims);
                                        std::istringstream isPointX(result);
@@ -2361,18 +2383,22 @@ void wxVtkSceneManager::loadDiagram(stringstream &inputStream)
                                        result = strtok(NULL, delims);
                                        std::istringstream isPointZ(result);
                                        isPointZ >> pz;
-               
                                        if (version<="1.2")
                                        {
                                                if (pz==900) pz=GPOSITION_Z;
                                        }
-                                       
+//EED 2022-01-16
+                    if (version<="1.4")
+                    {
+                        px = px*0.70;
+                        py = py*0.30;
+                    }
                                        conMod->getManualContourModel()->InsertPoint_id(ii + 1, px, py, pz);
                                        conView->getManualContourView()->AddPoint();
                                }
-                       }// version !=1.0
+                       }// if version !=1.0
                } // for numConns
-       } // start      
+       } // if start
 }
 //=========================================================================