Bug 11305: Performances could be improved with a better way to update data 98/13198/2
Calixte DENIZET [Fri, 22 Nov 2013 13:12:40 +0000 (14:12 +0100)]
* Fix the blinking on demo Lorentz (ode)
* Slightly improve perfs on plot(2|3)d creation
* Improve perfs on animation which used data field to update

Change-Id: Idfe1bca79922628dc0eec0cffdf520ea78dccff3

scilab/CHANGES_5.5.X
scilab/modules/graphic_objects/includes/setGraphicObjectProperty.h
scilab/modules/graphic_objects/src/cpp/setGraphicObjectProperty.cpp
scilab/modules/graphics/src/c/BuildObjects.c
scilab/modules/graphics/src/c/Interaction.c
scilab/modules/graphics/src/c/SetProperty.c
scilab/modules/graphics/src/c/getHandleProperty/set_data_property.c
scilab/modules/graphics/src/c/getHandleProperty/set_triangles_property.c

index e64015d..36ccc49 100644 (file)
@@ -108,6 +108,8 @@ Scilab Bug Fixes
 
 * Bug #11007, #11008 & #11009 fixed - New function conjgrad (Conjugate Gradient methods "pcg", "cgs", "bicg" and "bicgstab").
 
+* Bug #11305 fixed - Performances improved with a better way to update data.
+
 * Bug #11571 fixed - x_mdialog did not let the Look&Feel select the window size.
 
 * Bug #11575 fixed - There was no preview of GIF files in exportUI dialog.
index aa9addf..0d0297e 100644 (file)
@@ -23,5 +23,7 @@
 
 GRAPHIC_OBJECTS_IMPEXP void setGraphicObjectRelationship(int iParentId, int iChildId);
 GRAPHIC_OBJECTS_IMPEXP BOOL setGraphicObjectProperty(int iUID, const int _iPropertyName, void const* _pvValue, enum _ReturnType_ _valueTtype, int numElements);
+GRAPHIC_OBJECTS_IMPEXP BOOL setGraphicObjectPropertyAndNoWarn(int iUID, const int _iPropertyName, void const* _pvValue, enum _ReturnType_ _valueTtype, int numElements);
+GRAPHIC_OBJECTS_IMPEXP BOOL setGraphicObjectPropertyAndWarn(int iUID, const int _iPropertyName, void const* _pvValue, enum _ReturnType_ _valueTtype, int numElements, int warnJava);
 
 #endif /* !__SETGRAPHICOBJECTPROPERTY_H__ */
index c973f0a..8de0797 100644 (file)
@@ -38,6 +38,16 @@ void setGraphicObjectRelationship(int _parentId, int _childId)
 
 BOOL setGraphicObjectProperty(int _iID, int _iName, void const* _pvValue, _ReturnType_ _valueType, int numElements)
 {
+    return setGraphicObjectPropertyAndWarn(_iID, _iName, _pvValue, _valueType, numElements, 1);
+}
+
+BOOL setGraphicObjectPropertyAndNoWarn(int _iID, int _iName, void const* _pvValue, _ReturnType_ _valueType, int numElements)
+{
+    return setGraphicObjectPropertyAndWarn(_iID, _iName, _pvValue, _valueType, numElements, 0);
+}
+
+BOOL setGraphicObjectPropertyAndWarn(int _iID, int _iName, void const* _pvValue, _ReturnType_ _valueType, int numElements, int warnJava)
+{
     bool result = false;
 
     double doubleValue = 0.;
@@ -90,9 +100,13 @@ BOOL setGraphicObjectProperty(int _iID, int _iName, void const* _pvValue, _Retur
             || _iName == __GO_DATA_MODEL_MATPLOT_IMAGE_DATA__
        )
     {
-        result = BOOLtobool(DataController::setGraphicObjectProperty(_iID, _iName, _pvValue, numElements));
-        CallGraphicController::setGraphicObjectProperty(getScilabJavaVM(), _iID, __GO_DATA_MODEL__, _iID);
-        return booltoBOOL(result);
+        BOOL ret = DataController::setGraphicObjectProperty(_iID, _iName, _pvValue, numElements);
+        if (ret && warnJava)
+        {
+            //printf("debug property value=%d\n",_iName);
+            CallGraphicController::setGraphicObjectProperty(getScilabJavaVM(), _iID, __GO_DATA_MODEL__, _iID);
+        }
+        return ret;
     }
 
     switch (_valueType)
@@ -104,40 +118,27 @@ BOOL setGraphicObjectProperty(int _iID, int _iName, void const* _pvValue, _Retur
         case jni_string_vector :
             result = CallGraphicController::setGraphicObjectProperty(getScilabJavaVM(), _iID, _iName, (char**)_pvValue, numElements);
             break;
-
         case jni_double :
             doubleValue = *(double*)_pvValue;
             result = CallGraphicController::setGraphicObjectProperty(getScilabJavaVM(), _iID, _iName, (double)doubleValue);
             break;
-
         case jni_double_vector :
             result = CallGraphicController::setGraphicObjectProperty(getScilabJavaVM(), _iID, _iName, (double*)_pvValue, numElements);
             break;
-
         case jni_int :
-
             intValue = *(int*)_pvValue;
-
             result = CallGraphicController::setGraphicObjectProperty(getScilabJavaVM(), _iID, _iName, (int)intValue);
             break;
-
         case jni_int_vector :
             result = CallGraphicController::setGraphicObjectProperty(getScilabJavaVM(), _iID, _iName, (int*)_pvValue, numElements);
             break;
-
         case jni_bool :
-
             boolValue = *(BOOL*)_pvValue;
-
             result = CallGraphicController::setGraphicObjectProperty(getScilabJavaVM(), _iID, _iName, BOOLtobool(boolValue));
             break;
-
         case jni_bool_vector :
-
             result = CallGraphicController::setGraphicObjectProperty(getScilabJavaVM(), _iID, _iName, (bool*)_pvValue, numElements);
-
             break;
-
         default :
             /* Do Nothing */
             break;
index 6ccdc07..a2fd197 100644 (file)
@@ -228,7 +228,7 @@ int ConstructSubWin(int iParentfigureUID)
  * This function is to be used with objects including a text object.
  */
 int allocateText(int iParentsubwinUID,
-                 char * * text,
+                 char ** text,
                  int nbRow,
                  int nbCol,
                  double x,
@@ -578,7 +578,7 @@ int allocatePolyline(int iParentsubwinUID, double *pvecx, double *pvecy, double
          * Sets the number of elements (vertices composing the polyline) and allocates the coordinates array
          * The FALSE value is used to identify a failed memory allocation for now.
          */
-        result = setGraphicObjectProperty(iObj, __GO_DATA_MODEL_NUM_ELEMENTS_ARRAY__, numElementsArray, jni_int_vector, 2);
+        result = setGraphicObjectPropertyAndNoWarn(iObj, __GO_DATA_MODEL_NUM_ELEMENTS_ARRAY__, numElementsArray, jni_int_vector, 2);
 
         if (result == FALSE)
         {
@@ -638,7 +638,7 @@ int allocatePolyline(int iParentsubwinUID, double *pvecx, double *pvecy, double
          * x, y or z coordinates, and initializing coordinates to 0 during allocation
          * to ensure consistency
          */
-        setGraphicObjectProperty(iObj, __GO_DATA_MODEL_COORDINATES__, dataVector, jni_double, n1);
+        setGraphicObjectPropertyAndNoWarn(iObj, __GO_DATA_MODEL_COORDINATES__, dataVector, jni_double, n1);
 
         FREE(dataVector);
 
@@ -1058,7 +1058,7 @@ int ConstructSurface(int iParentsubwinUID, sciTypeOf3D typeof3d,
         gridSize[3] = *n2;
 
         /* Allocates the coordinates arrays */
-        result = setGraphicObjectProperty(iObj, __GO_DATA_MODEL_GRID_SIZE__, gridSize, jni_int_vector, 4);
+        result = setGraphicObjectPropertyAndNoWarn(iObj, __GO_DATA_MODEL_GRID_SIZE__, gridSize, jni_int_vector, 4);
     }
     /* Fac3d case */
     else
@@ -1075,7 +1075,7 @@ int ConstructSurface(int iParentsubwinUID, sciTypeOf3D typeof3d,
         numElementsArray[2] = nc;
 
         /* Allocates the coordinates and color arrays */
-        result = setGraphicObjectProperty(iObj, __GO_DATA_MODEL_NUM_ELEMENTS_ARRAY__, numElementsArray, jni_int_vector, 3);
+        result = setGraphicObjectPropertyAndNoWarn(iObj, __GO_DATA_MODEL_NUM_ELEMENTS_ARRAY__, numElementsArray, jni_int_vector, 3);
     }
 
     if (result == 0)
@@ -1085,15 +1085,19 @@ int ConstructSurface(int iParentsubwinUID, sciTypeOf3D typeof3d,
         return 0;
     }
 
-    setGraphicObjectProperty(iObj, __GO_DATA_MODEL_X__, pvecx, jni_double_vector, nx);
-    setGraphicObjectProperty(iObj, __GO_DATA_MODEL_Y__, pvecy, jni_double_vector, ny);
-    setGraphicObjectProperty(iObj, __GO_DATA_MODEL_Z__, pvecz, jni_double_vector, nz);
+    setGraphicObjectPropertyAndNoWarn(iObj, __GO_DATA_MODEL_X__, pvecx, jni_double_vector, nx);
+    setGraphicObjectPropertyAndNoWarn(iObj, __GO_DATA_MODEL_Y__, pvecy, jni_double_vector, ny);
 
     /* Add the color matrix dimensions as a property ? */
     if (nc > 0)
     {
+        setGraphicObjectPropertyAndNoWarn(iObj, __GO_DATA_MODEL_Z__, pvecz, jni_double_vector, nz);
         setGraphicObjectProperty(iObj, __GO_DATA_MODEL_COLORS__, zcol, jni_double_vector, nc);
     }
+    else
+    {
+        setGraphicObjectProperty(iObj, __GO_DATA_MODEL_Z__, pvecz, jni_double_vector, nz);
+    }
 
     /*-------END Replaced by: --------*/
 
@@ -1209,7 +1213,7 @@ int ConstructGrayplot(int iParentsubwinUID, double *pvecx, double *pvecy, double
     }
 
     /* Allocates the coordinates arrays */
-    result = setGraphicObjectProperty(iObj, __GO_DATA_MODEL_GRID_SIZE__, gridSize, jni_int_vector, 4);
+    result = setGraphicObjectPropertyAndNoWarn(iObj, __GO_DATA_MODEL_GRID_SIZE__, gridSize, jni_int_vector, 4);
 
     if (result == 0)
     {
@@ -1221,8 +1225,8 @@ int ConstructGrayplot(int iParentsubwinUID, double *pvecx, double *pvecy, double
     /* Only for Grayplot objects, for Matplot objects, x and y coordinates are automatically computed */
     if (type == 0)
     {
-        setGraphicObjectProperty(iObj, __GO_DATA_MODEL_X__, pvecx, jni_double_vector, n1);
-        setGraphicObjectProperty(iObj, __GO_DATA_MODEL_Y__, pvecy, jni_double_vector, n2);
+        setGraphicObjectPropertyAndNoWarn(iObj, __GO_DATA_MODEL_X__, pvecx, jni_double_vector, n1);
+        setGraphicObjectPropertyAndNoWarn(iObj, __GO_DATA_MODEL_Y__, pvecy, jni_double_vector, n2);
     }
 
     if (type == 0)
@@ -1320,7 +1324,7 @@ int ConstructImplot(int iParentsubwinUID, double *pvecx, unsigned char *pvecz, i
     gridSize[3] = 1;
 
     /* Allocates the coordinates arrays */
-    result = setGraphicObjectProperty(iObj, __GO_DATA_MODEL_GRID_SIZE__, gridSize, jni_int_vector, 4);
+    result = setGraphicObjectPropertyAndNoWarn(iObj, __GO_DATA_MODEL_GRID_SIZE__, gridSize, jni_int_vector, 4);
     if (result == 0)
     {
         deleteGraphicObject(iObj);
@@ -1340,7 +1344,7 @@ int ConstructImplot(int iParentsubwinUID, double *pvecx, unsigned char *pvecz, i
     numElements = (n1 - 1) * (n2 - 1);
     if (plottype != -1)
     {
-        setGraphicObjectProperty(iObj, __GO_DATA_MODEL_MATPLOT_DATA_INFOS__, &plottype, jni_int, 1);
+        setGraphicObjectPropertyAndNoWarn(iObj, __GO_DATA_MODEL_MATPLOT_DATA_INFOS__, &plottype, jni_int, 1);
     }
 
     setGraphicObjectProperty(iObj, __GO_DATA_MODEL_MATPLOT_IMAGE_DATA__, pvecz, jni_double_vector, numElements);
@@ -1598,7 +1602,7 @@ int ConstructFec(int iParentsubwinUID, double *pvecx, double *pvecy, double *pno
     }
 
     /* Allocates the coordinates array */
-    result = setGraphicObjectProperty(iObj, __GO_DATA_MODEL_NUM_VERTICES__, &Nnode, jni_int, 1);
+    result = setGraphicObjectPropertyAndNoWarn(iObj, __GO_DATA_MODEL_NUM_VERTICES__, &Nnode, jni_int, 1);
 
     if (result == 0)
     {
@@ -1608,7 +1612,7 @@ int ConstructFec(int iParentsubwinUID, double *pvecx, double *pvecy, double *pno
     }
 
     /* Allocates the triangle indices and values array */
-    result = setGraphicObjectProperty(iObj, __GO_DATA_MODEL_NUM_INDICES__, &Ntr, jni_int, 1);
+    result = setGraphicObjectPropertyAndNoWarn(iObj, __GO_DATA_MODEL_NUM_INDICES__, &Ntr, jni_int, 1);
 
     if (result == 0)
     {
@@ -1617,11 +1621,11 @@ int ConstructFec(int iParentsubwinUID, double *pvecx, double *pvecy, double *pno
         return 0;
     }
 
-    setGraphicObjectProperty(iObj, __GO_DATA_MODEL_X__, pvecx, jni_double_vector, Nnode);
-    setGraphicObjectProperty(iObj, __GO_DATA_MODEL_Y__, pvecy, jni_double_vector, Nnode);
+    setGraphicObjectPropertyAndNoWarn(iObj, __GO_DATA_MODEL_X__, pvecx, jni_double_vector, Nnode);
+    setGraphicObjectPropertyAndNoWarn(iObj, __GO_DATA_MODEL_Y__, pvecy, jni_double_vector, Nnode);
 
     /* Fec-specific property: triangle indices plus special values (triangle number and flag) */
-    setGraphicObjectProperty(iObj, __GO_DATA_MODEL_FEC_TRIANGLES__, pnoeud, jni_double_vector, Ntr);
+    setGraphicObjectPropertyAndNoWarn(iObj, __GO_DATA_MODEL_FEC_TRIANGLES__, pnoeud, jni_double_vector, Ntr);
 
     /* Function values */
     setGraphicObjectProperty(iObj, __GO_DATA_MODEL_VALUES__, pfun, jni_double_vector, Nnode);
index 1d52fb0..781aa37 100644 (file)
@@ -259,7 +259,7 @@ static int moveObj(int iObjUID, double displacement[], int displacementSize)
             }
 
             /* The z coordinates flag must be set explicitely for now. */
-            setGraphicObjectProperty(iObjUID, __GO_DATA_MODEL_Z_COORDINATES_SET__, &zCoordinatesSet, jni_int, 1);
+            setGraphicObjectPropertyAndNoWarn(iObjUID, __GO_DATA_MODEL_Z_COORDINATES_SET__, &zCoordinatesSet, jni_int, 1);
 
             /* Model data has been updated by direct pointer access, trigger update within the renderer. */
             setGraphicObjectProperty(iObjUID, __GO_DATA_MODEL_Z__, dataZ, jni_double_vector, iNum);
index ec46278..a49d2d5 100644 (file)
@@ -269,7 +269,7 @@ int sciSetPoint(int iObjUID, double *tab, int *numrow, int *numcol)
             numElementsArray[1] = n1;
 
             /* Resizes the data coordinates array if required */
-            result = setGraphicObjectProperty(iObjUID, __GO_DATA_MODEL_NUM_ELEMENTS_ARRAY__, numElementsArray, jni_int_vector, 2);
+            result = setGraphicObjectPropertyAndNoWarn(iObjUID, __GO_DATA_MODEL_NUM_ELEMENTS_ARRAY__, numElementsArray, jni_int_vector, 2);
 
             /*
              * For now, the FALSE return value corresponds to a failed memory allocation,
@@ -284,12 +284,12 @@ int sciSetPoint(int iObjUID, double *tab, int *numrow, int *numcol)
 
             if (*numcol > 0)
             {
-                setGraphicObjectProperty(iObjUID, __GO_DATA_MODEL_X__, tab, jni_double_vector, n1);
-                setGraphicObjectProperty(iObjUID, __GO_DATA_MODEL_Y__, &tab[n1], jni_double_vector, n1);
+                setGraphicObjectPropertyAndNoWarn(iObjUID, __GO_DATA_MODEL_X__, tab, jni_double_vector, n1);
+                setGraphicObjectPropertyAndNoWarn(iObjUID, __GO_DATA_MODEL_Y__, &tab[n1], jni_double_vector, n1);
 
                 if (*numcol == 3)
                 {
-                    setGraphicObjectProperty(iObjUID, __GO_DATA_MODEL_Z__, &tab[2 * n1], jni_double_vector, n1);
+                    setGraphicObjectPropertyAndNoWarn(iObjUID, __GO_DATA_MODEL_Z__, &tab[2 * n1], jni_double_vector, n1);
                     zCoordinatesSet = 1;
                 }
                 else
@@ -300,6 +300,11 @@ int sciSetPoint(int iObjUID, double *tab, int *numrow, int *numcol)
                 /* Required for now to indicate that the z coordinates have been set or not */
                 setGraphicObjectProperty(iObjUID, __GO_DATA_MODEL_Z_COORDINATES_SET__, &zCoordinatesSet, jni_int, 1);
             }
+            else
+            {
+                // to be sure that Java will be warned
+                setGraphicObjectProperty(iObjUID, __GO_DATA_MODEL__, NULL, jni_double_vector, 0);
+            }
 
             return 0;
         }
@@ -549,7 +554,7 @@ int sciSetPoint(int iObjUID, double *tab, int *numrow, int *numcol)
             gridSize[2] = ny + 1;
             gridSize[3] = 1;
 
-            result = setGraphicObjectProperty(iObjUID, __GO_DATA_MODEL_GRID_SIZE__, gridSize, jni_int_vector, 4);
+            result = setGraphicObjectPropertyAndNoWarn(iObjUID, __GO_DATA_MODEL_GRID_SIZE__, gridSize, jni_int_vector, 4);
 
             if (result == FALSE)
             {
@@ -573,7 +578,7 @@ int sciSetPoint(int iObjUID, double *tab, int *numrow, int *numcol)
             Nnode = *numrow;
 
             /* Resizes the data coordinates array if required */
-            result = setGraphicObjectProperty(iObjUID, __GO_DATA_MODEL_NUM_VERTICES__, &Nnode, jni_int, 1);
+            result = setGraphicObjectPropertyAndNoWarn(iObjUID, __GO_DATA_MODEL_NUM_VERTICES__, &Nnode, jni_int, 1);
 
             if (result == FALSE)
             {
@@ -581,8 +586,8 @@ int sciSetPoint(int iObjUID, double *tab, int *numrow, int *numcol)
                 return -1;
             }
 
-            setGraphicObjectProperty(iObjUID, __GO_DATA_MODEL_X__, tab, jni_double_vector, Nnode);
-            setGraphicObjectProperty(iObjUID, __GO_DATA_MODEL_Y__, &tab[Nnode], jni_double_vector, Nnode);
+            setGraphicObjectPropertyAndNoWarn(iObjUID, __GO_DATA_MODEL_X__, tab, jni_double_vector, Nnode);
+            setGraphicObjectPropertyAndNoWarn(iObjUID, __GO_DATA_MODEL_Y__, &tab[Nnode], jni_double_vector, Nnode);
             setGraphicObjectProperty(iObjUID, __GO_DATA_MODEL_VALUES__, &tab[2 * Nnode], jni_double_vector, Nnode);
             return 0;
         }
index 4111416..24db8a6 100644 (file)
@@ -150,7 +150,7 @@ int setgrayplotdata(void* _pvCtx, int iObjUID, AssignedList * tlist)
     gridSize[3] = 1;
 
     /* Resizes the coordinates arrays if required */
-    result = setGraphicObjectProperty(iObjUID, __GO_DATA_MODEL_GRID_SIZE__, gridSize, jni_int_vector, 4);
+    result = setGraphicObjectPropertyAndNoWarn(iObjUID, __GO_DATA_MODEL_GRID_SIZE__, gridSize, jni_int_vector, 4);
 
     if (result == FALSE)
     {
@@ -158,8 +158,8 @@ int setgrayplotdata(void* _pvCtx, int iObjUID, AssignedList * tlist)
         return SET_PROPERTY_ERROR;
     }
 
-    setGraphicObjectProperty(iObjUID, __GO_DATA_MODEL_X__, pvecx, jni_double_vector, nbRow[0]);
-    setGraphicObjectProperty(iObjUID, __GO_DATA_MODEL_Y__, pvecy, jni_double_vector, nbRow[1]);
+    setGraphicObjectPropertyAndNoWarn(iObjUID, __GO_DATA_MODEL_X__, pvecx, jni_double_vector, nbRow[0]);
+    setGraphicObjectPropertyAndNoWarn(iObjUID, __GO_DATA_MODEL_Y__, pvecy, jni_double_vector, nbRow[1]);
     setGraphicObjectProperty(iObjUID, __GO_DATA_MODEL_Z__, pvecz, jni_double_vector, nbRow[2]*nbCol[2]);
 
     return SET_PROPERTY_SUCCEED;
@@ -367,7 +367,7 @@ int set3ddata(void* _pvCtx, int iObjUID, AssignedList * tlist)
         numElementsArray[1] = m1;
         numElementsArray[2] = m3n * n3n;
 
-        result = setGraphicObjectProperty(iObjUID, __GO_DATA_MODEL_NUM_ELEMENTS_ARRAY__, numElementsArray, jni_int_vector, 3);
+        result = setGraphicObjectPropertyAndNoWarn(iObjUID, __GO_DATA_MODEL_NUM_ELEMENTS_ARRAY__, numElementsArray, jni_int_vector, 3);
 
         if (result == 0)
         {
@@ -385,7 +385,7 @@ int set3ddata(void* _pvCtx, int iObjUID, AssignedList * tlist)
         gridSize[2] = m2;
         gridSize[3] = n2;
 
-        result = setGraphicObjectProperty(iObjUID, __GO_DATA_MODEL_GRID_SIZE__, gridSize, jni_int_vector, 4);
+        result = setGraphicObjectPropertyAndNoWarn(iObjUID, __GO_DATA_MODEL_GRID_SIZE__, gridSize, jni_int_vector, 4);
 
         if (result == 0)
         {
@@ -394,20 +394,8 @@ int set3ddata(void* _pvCtx, int iObjUID, AssignedList * tlist)
         }
     }
 
-    setGraphicObjectProperty(iObjUID, __GO_DATA_MODEL_X__, pvecx, jni_double_vector, m1 * n1);
-    setGraphicObjectProperty(iObjUID, __GO_DATA_MODEL_Y__, pvecy, jni_double_vector, m2 * n2);
-    setGraphicObjectProperty(iObjUID, __GO_DATA_MODEL_Z__, pvecz, jni_double_vector, m3 * n3);
-
-    if (getAssignedListNbElement(tlist) == 4) /* F.Leray There is a color matrix */
-    {
-        inputColors = getCurrentDoubleMatrixFromList(_pvCtx, tlist, &m3n, &n3n);
-        nbInputColors = m3n * n3n;
-    }
-    else
-    {
-        inputColors = NULL;
-        nbInputColors = 0;
-    }
+    setGraphicObjectPropertyAndNoWarn(iObjUID, __GO_DATA_MODEL_X__, pvecx, jni_double_vector, m1 * n1);
+    setGraphicObjectPropertyAndNoWarn(iObjUID, __GO_DATA_MODEL_Y__, pvecy, jni_double_vector, m2 * n2);
 
     /*
      * Plot 3d case not treated for now
@@ -415,8 +403,24 @@ int set3ddata(void* _pvCtx, int iObjUID, AssignedList * tlist)
      */
     if (isFac3d == 1)
     {
+        if (getAssignedListNbElement(tlist) == 4) /* F.Leray There is a color matrix */
+        {
+            inputColors = getCurrentDoubleMatrixFromList(_pvCtx, tlist, &m3n, &n3n);
+            nbInputColors = m3n * n3n;
+        }
+        else
+        {
+            inputColors = NULL;
+            nbInputColors = 0;
+        }
+
+        setGraphicObjectPropertyAndNoWarn(iObjUID, __GO_DATA_MODEL_Z__, pvecz, jni_double_vector, m3 * n3);
         setGraphicObjectProperty(iObjUID, __GO_DATA_MODEL_COLORS__, inputColors, jni_double_vector, nbInputColors);
     }
+    else
+    {
+        setGraphicObjectProperty(iObjUID, __GO_DATA_MODEL_Z__, pvecz, jni_double_vector, m3 * n3);
+    }
 
     /* Color vector/matrix dimensions: to be checked for MVC implementation */
 #if 0
@@ -654,12 +658,12 @@ int set_data_property(void* _pvCtx, int iObjUID, void* _pvData, int valueType, i
                 {
                     gridSize[0] = dims[1] + 1;
                     gridSize[2] = dims[0] + 1;
-                    setGraphicObjectProperty(iObjUID, __GO_DATA_MODEL_GRID_SIZE__, gridSize, jni_int_vector, 4);
+                    setGraphicObjectPropertyAndNoWarn(iObjUID, __GO_DATA_MODEL_GRID_SIZE__, gridSize, jni_int_vector, 4);
                 }
 
                 if (plottype != -1)
                 {
-                    setGraphicObjectProperty(iObjUID, __GO_DATA_MODEL_MATPLOT_DATA_INFOS__, &plottype, jni_int, 1);
+                    setGraphicObjectPropertyAndNoWarn(iObjUID, __GO_DATA_MODEL_MATPLOT_DATA_INFOS__, &plottype, jni_int, 1);
                 }
                 setGraphicObjectProperty(iObjUID, __GO_DATA_MODEL_MATPLOT_IMAGE_DATA__, l1, jni_double_vector, dims[0] * dims[1]);
             }
@@ -799,12 +803,12 @@ int set_data_property(void* _pvCtx, int iObjUID, void* _pvData, int valueType, i
             {
                 gridSize[0] = n + 1;
                 gridSize[2] = m + 1;
-                setGraphicObjectProperty(iObjUID, __GO_DATA_MODEL_GRID_SIZE__, gridSize, jni_int_vector, 4);
+                setGraphicObjectPropertyAndNoWarn(iObjUID, __GO_DATA_MODEL_GRID_SIZE__, gridSize, jni_int_vector, 4);
             }
 
             if (plottype != -1)
             {
-                setGraphicObjectProperty(iObjUID, __GO_DATA_MODEL_MATPLOT_DATA_INFOS__, &plottype, jni_int, 1);
+                setGraphicObjectPropertyAndNoWarn(iObjUID, __GO_DATA_MODEL_MATPLOT_DATA_INFOS__, &plottype, jni_int, 1);
             }
 
             setGraphicObjectProperty(iObjUID, __GO_DATA_MODEL_MATPLOT_IMAGE_DATA__, l, jni_double_vector, m * n);
@@ -815,13 +819,13 @@ int set_data_property(void* _pvCtx, int iObjUID, void* _pvData, int valueType, i
             {
                 gridSize[0] = nbCol + 1;
                 gridSize[2] = nbRow + 1;
-                setGraphicObjectProperty(iObjUID, __GO_DATA_MODEL_GRID_SIZE__, gridSize, jni_int_vector, 4);
+                setGraphicObjectPropertyAndNoWarn(iObjUID, __GO_DATA_MODEL_GRID_SIZE__, gridSize, jni_int_vector, 4);
             }
 
             if ((DataType)datatype != MATPLOT_Double)
             {
                 plottype = buildMatplotType(MATPLOT_Double, (DataOrder)dataorder, (ImageType)imagetype);
-                setGraphicObjectProperty(iObjUID, __GO_DATA_MODEL_MATPLOT_DATA_INFOS__, &plottype, jni_int, 1);
+                setGraphicObjectPropertyAndNoWarn(iObjUID, __GO_DATA_MODEL_MATPLOT_DATA_INFOS__, &plottype, jni_int, 1);
             }
 
             setGraphicObjectProperty(iObjUID, __GO_DATA_MODEL_MATPLOT_IMAGE_DATA__, _pvData, jni_double_vector, nbRow * nbCol);
index da9d644..f8f8e35 100644 (file)
@@ -67,7 +67,7 @@ int set_triangles_property(void* _pvCtx, int iObjUID, void* _pvData, int valueTy
     }
 
     /* Resizes the triangle array if required */
-    result  = setGraphicObjectProperty(iObjUID, __GO_DATA_MODEL_NUM_INDICES__, &nbRow, jni_int, 1);
+    result  = setGraphicObjectPropertyAndNoWarn(iObjUID, __GO_DATA_MODEL_NUM_INDICES__, &nbRow, jni_int, 1);
 
     if (result == FALSE)
     {