Files
pcas/src/gdd/gddArray.cc
1999-04-30 15:24:53 +00:00

101 lines
1.8 KiB
C++

#include <stdio.h>
#include <stdlib.h>
#include <stdarg.h>
// Author: Jim Kowalkowski
// Date: 3/97
//
// $Id$
// $Log$
// Revision 1.2 1997/04/23 17:13:02 jhill
// fixed export of symbols from WIN32 DLL
//
// Revision 1.1 1997/03/21 01:56:04 jbk
// *** empty log message ***
//
#define epicsExportSharedSymbols
#include "gdd.h"
// ----------------------The gddAtomic functions-------------------------
gddAtomic::gddAtomic(int app, aitEnum prim, int dimen, ...):
gdd(app,prim,dimen)
{
va_list ap;
int i;
aitIndex val;
va_start(ap,dimen);
for(i=0;i<dimen;i++)
{
val=va_arg(ap,aitUint32);
bounds[i].set(0,val);
}
va_end(ap);
}
gddStatus gddAtomic::getBoundingBoxSize(aitUint32* b) const
{
unsigned i;
gddStatus rc=0;
if(dimension()>0)
for(i=0;i<dimension();i++) b[i]=bounds[i].size();
else
{
gddAutoPrint("gddAtomic::getBoundingBoxSize()",gddErrorOutOfBounds);
rc=gddErrorOutOfBounds;
}
return rc;
}
gddStatus gddAtomic::setBoundingBoxSize(const aitUint32* const b)
{
unsigned i;
gddStatus rc=0;
if(dimension()>0)
for(i=0;i<dimension();i++) bounds[i].setSize(b[i]);
else
{
gddAutoPrint("gddAtomic::setBoundingBoxSize()",gddErrorOutOfBounds);
rc=gddErrorOutOfBounds;
}
return rc;
}
gddStatus gddAtomic::getBoundingBoxOrigin(aitUint32* b) const
{
unsigned i;
gddStatus rc=0;
if(dimension()>0)
for(i=0;i<dimension();i++) b[i]=bounds[i].first();
else
{
gddAutoPrint("gddAtomic::getBoundingBoxOrigin()",gddErrorOutOfBounds);
rc=gddErrorOutOfBounds;
}
return rc;
}
gddStatus gddAtomic::setBoundingBoxOrigin(const aitUint32* const b)
{
unsigned i;
gddStatus rc=0;
if(dimension()>0)
for(i=0;i<dimension();i++) bounds[i].setFirst(b[i]);
else
{
gddAutoPrint("gddAtomic::setBoundingBoxOrigin",gddErrorOutOfBounds);
rc=gddErrorOutOfBounds;
}
return rc;
}