/*------------------------------------------------------------------------*/
int get_data_bounds_property(void* _pvCtx, char* pobjUID)
{
    double* dataBounds = NULL;
    int iView = 0;
    int* piView = &iView;

    getGraphicObjectProperty(pobjUID, __GO_DATA_BOUNDS__, jni_double_vector, (void **)&dataBounds);

    if (dataBounds == NULL)
    {
        Scierror(999, _("'%s' property does not exist for this handle.\n"), "data_bounds");
        return -1;
    }

    getGraphicObjectProperty(pobjUID, __GO_VIEW__, jni_int, (void **)&piView);

    /**DJ.Abdemouche 2003**/
    if (iView == 1)
    {
        return sciReturnMatrix(_pvCtx, dataBounds, 2, 3);
    }
    else
    {
        return sciReturnMatrix(_pvCtx, dataBounds, 2, 2);
    }
}
Example #2
0
/*------------------------------------------------------------------------*/
int get_data_property(void* _pvCtx, char* pobjUID)
{
    int type = -1;
    int *piType = &type;

    getGraphicObjectProperty(pobjUID, __GO_TYPE__, jni_int, (void **)&piType);

    switch (type)
    {
        case __GO_FAC3D__ :
        case __GO_PLOT3D__ :
            return get3ddata(pobjUID);
        case __GO_CHAMP__ :
            return getchampdata(pobjUID);
        case __GO_GRAYPLOT__ :
            return getgrayplotdata(pobjUID);
        case __GO_MATPLOT__ :
            return getmatplotdata(_pvCtx, pobjUID);
        default :
            /* F.Leray 02.05.05 : "data" case for others (using sciGetPoint routine inside GetProperty.c) */
        {
            int nbRow  =  0;
            int nbCol  =  0;
            int status = SET_PROPERTY_ERROR;
            /* Warning the following function allocates data */
            double* data = sciGetPoint(pobjUID, &nbRow, &nbCol);

            if (data == NULL && nbRow == 0 && nbCol == 0)
            {
                /* Empty data */
                sciReturnEmptyMatrix(_pvCtx);
                status = SET_PROPERTY_SUCCEED;
            }
            else if (data == NULL && nbRow == -1 && nbCol == -1)
            {
                /* data allocation failed */
                Scierror(999, _("%s: No more memory."), "get_data_property");
                status = SET_PROPERTY_ERROR;
            }
            else if (data == NULL)
            {
                Scierror(999, _("'%s' property does not exist for this handle.\n"), "data");
                return -1;
            }
            else
            {
                status = sciReturnMatrix(_pvCtx, data, nbRow, nbCol);
                FREE(data);
            }

            return status;
        }
    }
}
/**
 * Gets the diffuse color of the light/material.
 */
void* get_diffuse_color_property(void* _pvCtx, int iObjUID)
{
    double* color = NULL;

    getGraphicObjectProperty(iObjUID, __GO_DIFFUSECOLOR__, jni_double_vector, (void **)&color);

    if (color == NULL)
    {
        Scierror(999, _("'%s' property does not exist for this handle.\n"), "diffuse_color");
        return NULL;
    }

    return sciReturnMatrix(color, 1, 3);
}
/*------------------------------------------------------------------------*/
void* get_ticks_st_property(void* _pvCtx, int iObjUID)
{
    int const propr[3] = {__GO_X_AXIS_ST_FACTORS__, __GO_Y_AXIS_ST_FACTORS__, __GO_Z_AXIS_ST_FACTORS__};
    double factors[] = {1., 0., 1., 0., 1., 0.};
    int i = 0;

    for (i = 0 ; i < 3 ; i++)
    {
        double * dbls = NULL;
        getGraphicObjectProperty(iObjUID, propr[i], jni_double_vector, (void **)&dbls);
        if (dbls == NULL)
        {
            Scierror(999, _("'%s' property does not exist for this handle.\n"), "ticks_st");
            return NULL;
        }
        factors[2 * i] = dbls[0];
        factors[2 * i + 1] = dbls[1];
    }

    return sciReturnMatrix(factors, 2, 3);
}
Example #5
0
/* the matplot data can have several type */
int getmatplotdata(void * _pvCtx, char *pobjUID)
{
    int datatype = 0;
    int * piDataType = &datatype;
    int numX = 0;
    int *piNumX = &numX;
    int numY = 0;
    int *piNumY = &numY;
    void * data = NULL;
    int imagetype = 0;
    int * piImagetype = &imagetype;
    int gltype = 0;
    int * piGltype = &gltype;
    int status = SET_PROPERTY_ERROR;
    getGraphicObjectProperty(pobjUID, __GO_DATA_MODEL_NUM_X__, jni_int, (void **)&piNumX);
    getGraphicObjectProperty(pobjUID, __GO_DATA_MODEL_NUM_Y__, jni_int, (void **)&piNumY);
    getGraphicObjectProperty(pobjUID, __GO_DATA_MODEL_MATPLOT_DATA_TYPE__, jni_int, (void **)&piDataType);
    getGraphicObjectProperty(pobjUID, __GO_DATA_MODEL_Z__, jni_double_vector, &data);
    getGraphicObjectProperty(pobjUID, __GO_DATA_MODEL_MATPLOT_IMAGE_TYPE__, jni_int, (void **)&piImagetype);
    getGraphicObjectProperty(pobjUID, __GO_DATA_MODEL_MATPLOT_GL_TYPE__, jni_int, (void **)&piGltype);

    if (!data)
    {
        return sciReturnEmptyMatrix(_pvCtx);
    }

    switch ((DataType)datatype)
    {
        case MATPLOT_HM1_Char :
        {
            int dims[3] = {numY - 1, numX - 1, 1};
            status = sciReturnHypermatOfInteger8(_pvCtx, dims, 3, (char*)data);
            break;
        }
        case MATPLOT_HM1_UChar :
        {
            int dims[3] = {numY - 1, numX - 1, 1};
            status = sciReturnHypermatOfUnsignedInteger8(_pvCtx, dims, 3, (unsigned char*)data);
            break;
        }
        case MATPLOT_HM3_Char :
        {
            int dims[3] = {numY - 1, numX - 1, 3};
            status = sciReturnHypermatOfInteger8(_pvCtx, dims, 3, (char*)data);
            break;
        }
        case MATPLOT_HM3_UChar :
        {
            int dims[3] = {numY - 1, numX - 1, 3};
            status = sciReturnHypermatOfUnsignedInteger8(_pvCtx, dims, 3, (unsigned char*)data);
            break;
        }
        case MATPLOT_HM1_Double :
        {
            int dims[3] = {numY - 1, numX - 1, 1};
            status = sciReturnHypermatOfDouble(_pvCtx, dims, 3, (double*)data);
            break;
        }
        case MATPLOT_HM3_Double :
        {
            int dims[3] = {numY - 1, numX - 1, 3};
            status = sciReturnHypermatOfDouble(_pvCtx, dims, 3, (double*)data);
            break;
        }
        case MATPLOT_HM4_Char :
        {
            int dims[3] = {numY - 1, numX - 1, 4};
            status = sciReturnHypermatOfInteger8(_pvCtx, dims, 3, (char*)data);
            break;
        }
        case MATPLOT_HM4_UChar :
        {
            int dims[3] = {numY - 1, numX - 1, 4};
            status = sciReturnHypermatOfUnsignedInteger8(_pvCtx, dims, 3, (unsigned char*)data);
            break;
        }
        case MATPLOT_HM4_Double :
        {
            int dims[3] = {numY - 1, numX - 1, 4};
            status = sciReturnHypermatOfDouble(_pvCtx, dims, 3, (double*)data);
            break;
        }
        case MATPLOT_Char :
        {
            status = sciReturnMatrixOfInteger8(_pvCtx, (char*)data, numY - 1, numX - 1);
            break;
        }
        case MATPLOT_UChar :
        {

            if ((ImageType)imagetype == MATPLOT_RGB)
            {
                status = sciReturnMatrixOfUnsignedInteger8(_pvCtx, (unsigned char*)data, 3 * (numY - 1), numX - 1);
            }
            else if ((ImageType)imagetype == MATPLOT_GL_RGBA)
            {
                status = sciReturnMatrixOfUnsignedInteger8(_pvCtx, (unsigned char*)data, 4 * (numY - 1), numX - 1);
            }
            else
            {
                status = sciReturnMatrixOfUnsignedInteger8(_pvCtx, (unsigned char*)data, numY - 1, numX - 1);
            }
            break;
        }
        case MATPLOT_Short :
        {
            status = sciReturnMatrixOfInteger16(_pvCtx, (short*)data, numY - 1, numX - 1);
            break;
        }
        case MATPLOT_UShort :
        {
            status = sciReturnMatrixOfUnsignedInteger16(_pvCtx, (unsigned short*)data, numY - 1, numX - 1);
            break;
        }
        case MATPLOT_Int :
        {
            status = sciReturnMatrixOfInteger32(_pvCtx, (int*)data, numY - 1, numX - 1);
            break;
        }
        case MATPLOT_UInt :
        {
            status = sciReturnMatrixOfUnsignedInteger32(_pvCtx, (unsigned int*)data, numY - 1, numX - 1);
            break;
        }
        case MATPLOT_Double :
        {
            status = sciReturnMatrix(_pvCtx, (double*)data, numY - 1, numX - 1);
            break;
        }
    }

    return status;
}