Exemplo n.º 1
0
/*!
   \brief Update ranges

   Call whenever a new surface is added, deleted, or exag changes

   \return 1
 */
int Nviz_update_ranges(nv_data * dc)
{
    float zmin, zmax, exag;

    GS_get_longdim(&(dc->xyrange));

    dc->zrange = 0.;

    /* Zrange is based on a minimum of Longdim */
    if (GS_global_exag()) {
	exag = GS_global_exag();
	dc->zrange = dc->xyrange / exag;
    }
    else {
	exag = 1.0;
    }

    GS_get_zrange_nz(&zmin, &zmax);	/* actual */

    zmax = zmin + (3. * dc->xyrange / exag);
    zmin = zmin - (2. * dc->xyrange / exag);

    if ((zmax - zmin) > dc->zrange)
	dc->zrange = zmax - zmin;

    return 1;
}
Exemplo n.º 2
0
/*!
   \brief Get largest dimension

   \param data nviz data
 */
float Nviz_get_longdim(nv_data * data)
{
    float dim;

    GS_get_longdim(&dim);

    return dim;
}
Exemplo n.º 3
0
/* after initial data has been loaded, & maybe again later */
int Nget_height_cmd(Nv_data * data, Tcl_Interp * interp,	/* Current interpreter. */
		    int argc, char **argv)
{
    float longdim, exag, texag, hmin, hmax;
    int nsurfs, i, *surf_list;
    char min[128];
    char max[128];
    char val[128];
    float fmin, fmax;
    char *list[4];

    surf_list = GS_get_surf_list(&nsurfs);
    if (nsurfs) {
	GS_get_longdim(&longdim);
	GS_get_zrange_nz(&hmin, &hmax);

	exag = 0.0;
	for (i = 0; i < nsurfs; i++) {
	    if (GS_get_exag_guess(surf_list[i], &texag) > -1)
		if (texag)
		    exag = texag > exag ? texag : exag;
	}
	if (exag == 0.0)
	    exag = 1.0;

	fmin = hmin - (2. * longdim / exag);
	fmax = hmin + (3 * longdim / exag);
    }
    else {
	fmax = 10000.0;
	fmin = 0.0;
    }

    /* The one decimal place of accuracy is necessary to force Tcl to */
    /* parse these values as floating point rather than integers.  This */
    /* avoids problems with integers which are too large to represent. */
    sprintf(min, "%.1f", fmin);
    sprintf(max, "%.1f", fmax);
    sprintf(val, "%.1f", fmin + (fmax - fmin) / 2.0);

    list[0] = val;
    list[1] = min;
    list[2] = max;
    list[3] = NULL;
    Tcl_SetResult(interp, Tcl_Merge(3, list), TCL_DYNAMIC);

    return TCL_OK;

}
Exemplo n.º 4
0
/* use own system of getting vals from sliders to make it easier to
   change the slider's range dynamically */
int
init_default_slider_vals1(Nv_data * dc, float *min, float *max, float *val)
{
    float longdim;

    GS_get_longdim(&longdim);

    min[MAIN_PSP] = 3;
    max[MAIN_PSP] = 120;
    val[MAIN_PSP] = UNIT_OF(120, 3, 40);

    min[CPL_TILT] = 0.0;
    max[CPL_TILT] = 360.;
    val[CPL_TILT] = 0.5;

    min[CPL_ROT] = 0.0;
    max[CPL_ROT] = 360.;
    val[CPL_ROT] = 0.5;

    val[VECT_ZEX] = 0.1;
    val[LITE_BGT] = 0.8;
    val[LITE_RED] = 1.0;
    val[LITE_GRN] = 1.0;
    val[LITE_BLU] = 1.0;
    val[LITE_AMB] = 0.3;
    val[LITE_HGT] = 0.8;
    val[LITE_SHN] = 0.8;

    max[COL_RED] = max[COL_GRN] = max[COL_BLU] = 255;
    val[COL_RED] = 0.3;
    val[COL_GRN] = 0.3;
    val[COL_BLU] = 0.3;

    max[ATTR_CON] = 255;
    val[ATTR_CON] = 0.0;

    max[SITE_SIZ] = longdim / 20.;
    val[SITE_SIZ] = 0.2;
}
Exemplo n.º 5
0
/*!
   \brief Set default value for geosite struct

   \param gp pointer to geosite struct

   \return 1 on success
   \return -1 on failure
 */
int gp_set_defaults(geosite * gp)
{
    float dim;

    if (!gp) {
	return -1;
    }
    G_debug(5, "gp_set_defaults() id=%d", gp->gsite_id);

    GS_get_longdim(&dim);

    gp->style->color = 0xF0F0F0;
    gp->style->size = dim / 100.;
    gp->style->width = 1;
    gp->style->symbol = ST_X;
    gp->hstyle->color = 0xFF0000;
    gp->hstyle->size = dim / 150.;
    gp->hstyle->symbol = ST_X;
    gp->tstyle = NULL;

    return 1;
}