* Improve block parameters errors (types and sizes) reporting.
+* Avoid some scopes blink on simulation.
+
* Bug #10040 fixed - VARIABLE_DELAY documentation does not fully describe the
initial value behavioral.
{
switch (propertyName)
{
- case __GO_DATA_MODEL_NUM_ELEMENTS_ARRAY__ :
- return NUM_ELEMENTS_ARRAY;
- case __GO_DATA_MODEL_COORDINATES__ :
- return COORDINATES;
- case __GO_DATA_MODEL_X__ :
- return X_COORDINATES;
- case __GO_DATA_MODEL_Y__ :
- return Y_COORDINATES;
- case __GO_DATA_MODEL_Z__ :
- return Z_COORDINATES;
- case __GO_DATA_MODEL_COLORS__ :
- return COLORS;
- case __GO_DATA_MODEL_NUM_COLORS__ :
- return NUM_COLORS;
- default :
- return NgonData::getPropertyFromName(propertyName);
+ case __GO_DATA_MODEL_NUM_ELEMENTS_ARRAY__ :
+ return NUM_ELEMENTS_ARRAY;
+ case __GO_DATA_MODEL_COORDINATES__ :
+ return COORDINATES;
+ case __GO_DATA_MODEL_X__ :
+ return X_COORDINATES;
+ case __GO_DATA_MODEL_Y__ :
+ return Y_COORDINATES;
+ case __GO_DATA_MODEL_Z__ :
+ return Z_COORDINATES;
+ case __GO_DATA_MODEL_COLORS__ :
+ return COLORS;
+ case __GO_DATA_MODEL_NUM_COLORS__ :
+ return NUM_COLORS;
+ default :
+ return NgonData::getPropertyFromName(propertyName);
}
}
{
delete [] coordinates;
+ numVerticesPerGon = numElements / numGons;
coordinates = new double[3 * numElements];
}
return 0;
}
- if (numGons*numVerticesPerGon != numElementsArray[0]*numElementsArray[1])
+ if (numGons * numVerticesPerGon != numElementsArray[0]*numElementsArray[1])
{
try
{
if (pPolyline != NULL)
{
/*
- * Default setup (will crash if removed)
+ * Default setup of the nGons property
*/
{
- int polylineSize[2] = { 1, block->ipar[2] };
- setGraphicObjectProperty(pPolyline, __GO_DATA_MODEL_NUM_ELEMENTS_ARRAY__, polylineSize, jni_int_vector, 2);
+ int nGons = 1;
+ setGraphicObjectProperty(pPolyline, __GO_DATA_MODEL_NUM_GONS__, &nGons, jni_int, 1);
}
- setGraphicObjectProperty(pPolyline, __GO_DATA_MODEL_X__, &d__0, jni_double_vector, 1);
- setGraphicObjectProperty(pPolyline, __GO_DATA_MODEL_Y__, &d__0, jni_double_vector, 1);
-
color = block->ipar[3];
markSize = block->ipar[4];
lineThickness = (double)markSize;
if (pPolyline != NULL)
{
/*
- * Default setup (will crash if removed)
+ * Default setup of the nGons property
*/
{
- int polylineSize[2] = { 1, block->ipar[2] };
- setGraphicObjectProperty(pPolyline, __GO_DATA_MODEL_NUM_ELEMENTS_ARRAY__, polylineSize, jni_int_vector, 2);
+ int nGons = 1;
+ setGraphicObjectProperty(pPolyline, __GO_DATA_MODEL_NUM_GONS__, &nGons, jni_int, 1);
}
- setGraphicObjectProperty(pPolyline, __GO_DATA_MODEL_X__, &d__0, jni_double_vector, 1);
- setGraphicObjectProperty(pPolyline, __GO_DATA_MODEL_Y__, &d__0, jni_double_vector, 1);
- setGraphicObjectProperty(pPolyline, __GO_DATA_MODEL_Z__, &d__0, jni_double_vector, 1);
-
color = block->ipar[3 + row];
markSize = block->ipar[3 + block->ipar[1] + row];
lineThickness = (double)markSize;
static char *getPolyline(char *pAxeUID, scicos_block * block, int row);
/**
- * Set the polylines buffer size
- *
- * \param block the block
- * \param input the input port index
- * \param maxNumberOfPoints the size of the buffer
- */
-static BOOL setPolylinesBuffers(scicos_block * block, int input, int maxNumberOfPoints);
-
-/**
* Set the polylines bounds
*
* \param block the block
// on a full scope, re-alloc
maxNumberOfPoints = maxNumberOfPoints + block->ipar[2];
sco = reallocScoData(block, maxNumberOfPoints);
-
- // reconfigure related graphic objects
- if (setPolylinesBuffers(block, input, maxNumberOfPoints) == FALSE)
- {
- set_block_error(-5);
- freeScoData(block);
- sco = NULL;
- }
}
/*
{
/*
- * Default setup (will crash if removed)
+ * Default setup of the nGons property
*/
{
- int polylineSize[2] = { 1, block->ipar[2] };
- setGraphicObjectProperty(pPolyline, __GO_DATA_MODEL_NUM_ELEMENTS_ARRAY__, polylineSize, jni_int_vector, 2);
+ int nGons = 1;
+ setGraphicObjectProperty(pPolyline, __GO_DATA_MODEL_NUM_GONS__, &nGons, jni_int, 1);
}
color = block->ipar[3 + row];
return sco->scope.cachedPolylinesUIDs[row];
}
-static BOOL setPolylinesBuffers(scicos_block * block, int input, int maxNumberOfPoints)
-{
- int i;
-
- char const* pFigureUID;
- char *pAxeUID;
- char *pPolylineUID;
-
- BOOL result = TRUE;
- int polylineSize[2] = { 1, maxNumberOfPoints };
- int links_count = block->ipar[15];
-
- pFigureUID = getFigure(block);
- pAxeUID = getAxe(pFigureUID, block, input);
-
- for (i = 0; i < links_count; i++)
- {
- pPolylineUID = getPolyline(pAxeUID, block, i);
- result &= setGraphicObjectProperty(pPolylineUID, __GO_DATA_MODEL_NUM_ELEMENTS_ARRAY__, polylineSize, jni_int_vector, 2);
- }
-
- return result;
-}
-
static BOOL setPolylinesBounds(scicos_block * block, int input, int periodCounter)
{
char const* pFigureUID;
#include "AxesModel.h"
// #include <stdio.h>
+
// #define LOG(...) printf(__VA_ARGS__)
#define LOG(...)
+// #define PUSH_LOG(...) printf(__VA_ARGS__)
+#define PUSH_LOG(...)
+
#define HISTORY_POINTS_THRESHOLD 4096
// select the right input and row
data = sco->internal.bufferCoordinates[input][row];
+ PUSH_LOG("%s: %d\n", "pushData", block->ipar[2]);
return setGraphicObjectProperty(pPolylineUID, __GO_DATA_MODEL_COORDINATES__, data, jni_double_vector, block->ipar[2]);
}
{
/*
- * Default setup (will crash if removed)
+ * Default setup of the nGons property
*/
{
- int polylineSize[2] = { 1, polylineDefaultNumElement };
- setGraphicObjectProperty(pPolyline, __GO_DATA_MODEL_NUM_ELEMENTS_ARRAY__, polylineSize, jni_int_vector, 2);
+ int nGons = 1;
+ setGraphicObjectProperty(pPolyline, __GO_DATA_MODEL_NUM_GONS__, &nGons, jni_int, 1);
}
// ipar=[win;size(in,'*');N;wpos(:);wdim(:);in(:);clrs(:);heritance]
sco_data *sco;
BOOL result = TRUE;
- int polylineSize[2] = { 1, maxNumberOfPoints };
sco = getScoData(block);
pFigureUID = getFigure(block);
for (i = 0; i < block->insz[input]; i++)
{
pPolylineUID = getPolyline(pAxeUID, block, input, i, TRUE);
- result &= setGraphicObjectProperty(pPolylineUID, __GO_DATA_MODEL_NUM_ELEMENTS_ARRAY__, polylineSize, jni_int_vector, 2);
data = sco->internal.historyCoordinates[input][i];
+
+ PUSH_LOG("%s: %d\n", "pushHistory", maxNumberOfPoints);
result &= setGraphicObjectProperty(pPolylineUID, __GO_DATA_MODEL_COORDINATES__, data, jni_double_vector, maxNumberOfPoints);
}
*/
if (pPolyline != NULL)
{
-
/*
- * Default setup (will crash if removed)
+ * Default setup of the nGons property
*/
{
- int polylineSize[2] = { 1, polylineDefaultNumElement };
- setGraphicObjectProperty(pPolyline, __GO_DATA_MODEL_NUM_ELEMENTS_ARRAY__, polylineSize, jni_int_vector, 2);
+ int nGons = 1;
+ setGraphicObjectProperty(pPolyline, __GO_DATA_MODEL_NUM_GONS__, &nGons, jni_int, 1);
}
color = block->ipar[3 + row];
sco_data *sco;
BOOL result = TRUE;
- int polylineSize[2] = { 1, maxNumberOfPoints };
sco = getScoData(block);
pFigureUID = getFigure(block);
for (i = 0; i < block->insz[input]; i++)
{
pPolylineUID = getPolyline(pAxeUID, block, i, TRUE);
- result &= setGraphicObjectProperty(pPolylineUID, __GO_DATA_MODEL_NUM_ELEMENTS_ARRAY__, polylineSize, jni_int_vector, 2);
data = sco->internal.historyCoordinates[input][i];
result &= setGraphicObjectProperty(pPolylineUID, __GO_DATA_MODEL_COORDINATES__, data, jni_double_vector, maxNumberOfPoints);
static char *getPolyline(char *pAxeUID, scicos_block * block, int row);
/**
- * Set the polylines buffer size
- *
- * \param block the block
- * \param maxNumberOfPoints the size of the buffer
- */
-static BOOL setPolylinesBuffers(scicos_block * block, int maxNumberOfPoints);
-
-/**
* Set the polylines bounds
*
* \param block the block
// on a full scope, re-alloc
maxNumberOfPoints = maxNumberOfPoints + block->ipar[2];
sco = reallocScoData(block, maxNumberOfPoints);
-
- // reconfigure related graphic objects
- if (setPolylinesBuffers(block, maxNumberOfPoints) == FALSE)
- {
- set_block_error(-5);
- freeScoData(block);
- sco = NULL;
- }
}
/*
if (pPolyline != NULL)
{
/*
- * Default setup (will crash if removed)
+ * Default setup of the nGons property
*/
{
- int polylineSize[2] = { 1, block->ipar[2] };
- setGraphicObjectProperty(pPolyline, __GO_DATA_MODEL_NUM_ELEMENTS_ARRAY__, polylineSize, jni_int_vector, 2);
+ int nGons = 1;
+ setGraphicObjectProperty(pPolyline, __GO_DATA_MODEL_NUM_GONS__, &nGons, jni_int, 1);
}
- setGraphicObjectProperty(pPolyline, __GO_DATA_MODEL_X__, &d__0, jni_double_vector, 1);
- setGraphicObjectProperty(pPolyline, __GO_DATA_MODEL_Y__, &d__0, jni_double_vector, 1);
-
color = block->ipar[3];
markSize = block->ipar[4];
lineThickness = (double)markSize;
return sco->scope.cachedPolylinesUIDs[row];
}
-static BOOL setPolylinesBuffers(scicos_block * block, int maxNumberOfPoints)
-{
- int i;
-
- char const* pFigureUID;
- char *pAxeUID;
- char *pPolylineUID;
-
- BOOL result = TRUE;
- int polylineSize[2] = { 1, maxNumberOfPoints };
-
- pFigureUID = getFigure(block);
- pAxeUID = getAxe(pFigureUID, block);
-
- for (i = 0; i < block->insz[0]; i++)
- {
- pPolylineUID = getPolyline(pAxeUID, block, i);
- result &= setGraphicObjectProperty(pPolylineUID, __GO_DATA_MODEL_NUM_ELEMENTS_ARRAY__, polylineSize, jni_int_vector, 2);
- }
-
- return result;
-}
-
static BOOL setPolylinesBounds(scicos_block * block)
{
char const* pFigureUID;
static char *getPolyline(char *pAxeUID, scicos_block * block, int row);
/**
- * Set the polylines buffer size
- *
- * \param block the block
- * \param maxNumberOfPoints the size of the buffer
- */
-static BOOL setPolylinesBuffers(scicos_block * block, int maxNumberOfPoints);
-
-/**
* Set the polylines bounds
*
* \param block the block
// on a full scope, re-alloc
maxNumberOfPoints = maxNumberOfPoints + block->ipar[2];
sco = reallocScoData(block, maxNumberOfPoints);
-
- // reconfigure related graphic objects
- if (setPolylinesBuffers(block, maxNumberOfPoints) == FALSE)
- {
- set_block_error(-5);
- freeScoData(block);
- sco = NULL;
- }
}
/*
if (pPolyline != NULL)
{
/*
- * Default setup (will crash if removed)
+ * Default setup of the nGons property
*/
{
- int polylineSize[2] = { 1, block->ipar[2] };
- setGraphicObjectProperty(pPolyline, __GO_DATA_MODEL_NUM_ELEMENTS_ARRAY__, polylineSize, jni_int_vector, 2);
+ int nGons = 1;
+ setGraphicObjectProperty(pPolyline, __GO_DATA_MODEL_NUM_GONS__, &nGons, jni_int, 1);
}
- setGraphicObjectProperty(pPolyline, __GO_DATA_MODEL_X__, &d__0, jni_double_vector, 1);
- setGraphicObjectProperty(pPolyline, __GO_DATA_MODEL_Y__, &d__0, jni_double_vector, 1);
- setGraphicObjectProperty(pPolyline, __GO_DATA_MODEL_Z__, &d__0, jni_double_vector, 1);
-
color = block->ipar[3 + row];
markSize = block->ipar[3 + block->ipar[1] + row];
lineThickness = (double)markSize;
return sco->scope.cachedPolylinesUIDs[row];
}
-static BOOL setPolylinesBuffers(scicos_block * block, int maxNumberOfPoints)
-{
- int i;
-
- char const* pFigureUID;
- char *pAxeUID;
- char *pPolylineUID;
-
- BOOL result = TRUE;
- int polylineSize[2] = { 1, maxNumberOfPoints };
-
- pFigureUID = getFigure(block);
- pAxeUID = getAxe(pFigureUID, block);
-
- for (i = 0; i < block->insz[0]; i++)
- {
- pPolylineUID = getPolyline(pAxeUID, block, i);
- result &= setGraphicObjectProperty(pPolylineUID, __GO_DATA_MODEL_NUM_ELEMENTS_ARRAY__, polylineSize, jni_int_vector, 2);
- }
-
- return result;
-}
-
static BOOL setPolylinesBounds(scicos_block * block)
{
char const* pFigureUID;