/*
* Copyright (C) 1998, 2000-2007, 2010, 2011, 2012, 2013 SINTEF ICT,
* Applied Mathematics, Norway.
*
* Contact information: E-mail: tor.dokken@sintef.no
* SINTEF ICT, Department of Applied Mathematics,
* P.O. Box 124 Blindern,
* 0314 Oslo, Norway.
*
* This file is part of SISL.
*
* SISL is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as
* published by the Free Software Foundation, either version 3 of the
* License, or (at your option) any later version.
*
* SISL is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public
* License along with SISL. If not, see
* .
*
* In accordance with Section 7(b) of the GNU Affero General Public
* License, a covered work must retain the producer line in every data
* file that is created or manipulated using SISL.
*
* Other Usage
* You can be released from the requirements of the license by purchasing
* a commercial license. Buying such a license is mandatory as soon as you
* develop commercial activities involving the SISL library without
* disclosing the source code of your own applications.
*
* This file may be used in accordance with the terms contained in a
* written agreement between you and SINTEF ICT.
*/
#include "sisl-copyright.h"
/*
*
* $Id: s1989.c,v 1.2 2001-03-19 15:58:58 afr Exp $
*
*/
#define S1989
#include "sislP.h"
#if defined(SISLNEEDPROTOTYPES)
void s1989(SISLSurf *ps,double **emax,double **emin,int *jstat)
#else
void s1989(ps,emax,emin,jstat)
SISLSurf *ps;
double **emax;
double **emin;
int *jstat;
#endif
/*
*********************************************************************
*
*********************************************************************
*
* PURPOSE : Find the bounding box of the SISLSurf. NB. The geometric
* bounding box is returned also in the rational case, that
* is the box in homogenous coordinates is NOT computed.
*
*
* INPUT : ps - SISLSurface to treat.
*
* OUTPUT : emin - Array of dimension idim containing
* the minimum values of the bounding box,
* i.e. down-left corner of the box.
* emax - Array of dimension idim containing
* the maximum values of the bounding box,
* i.e. top-right corner of the box.
* jstat - status messages
* > 0 : warning
* = 0 : ok
* < 0 : error
*
*
*
* METHOD :
*
*
* REFERENCES :
*
* CALLS :
*
* WRITTEN BY : Christophe Rene Birkeland, SINTEF Oslo, July 1993.
*
*********************************************************************
*/
{
int i,j; /* Loop control variables */
int kpos = 0; /* Position of error. */
int bsdim;
int len;
int in = ps->in1 * ps->in2;
double *coeff;
double *minim=SISL_NULL;
double *maxim=SISL_NULL;
/* initialize variables */
bsdim = ps->idim;
coeff = ps->ecoef;
len = bsdim;
minim = newarray(bsdim, DOUBLE);
maxim = newarray(bsdim, DOUBLE);
if(minim == SISL_NULL || maxim == SISL_NULL) goto err101;
for(j=0; j