[BACK]Return to cCollide.C CVS log [TXT][DIR] Up to [Development] / performer / src / lib / libpfui

File: [Development] / performer / src / lib / libpfui / cCollide.C (download)

Revision 1.1, Tue Nov 21 21:39:35 2000 UTC (16 years, 10 months ago) by flynnt
Branch: MAIN
CVS Tags: HEAD

Initial check-in based on OpenGL Performer 2.4 tree.
-flynnt

/*
 * Copyright 1992, 1995, Silicon Graphics, Inc.
 * ALL RIGHTS RESERVED
 *
 * UNPUBLISHED -- Rights reserved under the copyright laws of the United
 * States.   Use of a copyright notice is precautionary only and does not
 * imply publication or disclosure.
 *
 * U.S. GOVERNMENT RESTRICTED RIGHTS LEGEND:
 * Use, duplication or disclosure by the Government is subject to restrictions
 * as set forth in FAR 52.227.19(c)(2) or subparagraph (c)(1)(ii) of the Rights
 * in Technical Data and Computer Software clause at DFARS 252.227-7013 and/or
 * in similar or successor clauses in the FAR, or the DOD or NASA FAR
 * Supplement.  Contractor/manufacturer is Silicon Graphics, Inc.,
 * 2011 N. Shoreline Blvd. Mountain View, CA 94039-7311.
 *
 * THE CONTENT OF THIS WORK CONTAINS CONFIDENTIAL AND PROPRIETARY
 * INFORMATION OF SILICON GRAPHICS, INC. ANY DUPLICATION, MODIFICATION,
 * DISTRIBUTION, OR DISCLOSURE IN ANY FORM, IN WHOLE, OR IN PART, IS STRICTLY
 * PROHIBITED WITHOUT THE PRIOR EXPRESS WRITTEN PERMISSION OF SILICON
 * GRAPHICS, INC.
 */

/*
 * file: cCollide.C
 * -----------------
 * 
 * $Revision: 1.1 $
 * $Date: 2000/11/21 21:39:35 $
 * 
 * IRIS Performer Utility Collide Class Interface Routines
 */



#include <Performer/pf.h>
#include <Performer/pr/pfMemory.h>
#include <Performer/pr/pfLinMath.h>
#include <Performer/pfui.h>

#include "pfiCollide.h"



pfType*
pfiCollideClassType(void)
{
    return pfiCollide::getClassType();    
}

pfiCollide*
pfiNewCollide(void *arena)
{ 
    return new(arena) pfiCollide;
}

void
pfiEnableCollide(pfiCollide *collide)
{ 
    if (collide == NULL)
    {
	pfNotify(PFNFY_WARN, PFNFY_USAGE, 
	    "pfiEnableCollide -- null pfiCollide*");
	return;
    }
    collide->enable();
}

void
pfiDisableCollide(pfiCollide *collide)
{ 
    if (collide == NULL)
    {
	pfNotify(PFNFY_WARN, PFNFY_USAGE, 
	    "pfiEnableCollide -- null pfiCollide*");
	return;
    }
    collide->disable();
}

int
pfiGetCollideEnable(pfiCollide *collide)
{ 
    if (collide == NULL)
    {
	pfNotify(PFNFY_WARN, PFNFY_USAGE, 
	    "pfiGetCollideEnable -- null pfiCollide*");
	return -1;
    }
    return collide->getEnable();
}

void
pfiCollideMode(pfiCollide *collide, int _mode, int _val)
{ 
    if (collide == NULL)
    {
	pfNotify(PFNFY_WARN, PFNFY_USAGE, 
	    "pfiCollideMode -- null pfiCollide*");
	return;
    }
    collide->setMode(_mode, _val);
}

int
pfiGetCollideMode(pfiCollide *collide, int _mode)
{ 
    if (collide == NULL)
    {
	pfNotify(PFNFY_WARN, PFNFY_USAGE, 
	    "pfiGetCollideMode -- null pfiCollide*");
	return -1;
    }
    return collide->getMode(_mode);
}

void
pfiCollideStatus(pfiCollide *collide, int _status)
{ 
    if (collide == NULL)
    {
	pfNotify(PFNFY_WARN, PFNFY_USAGE, 
	    "pfiCollideStatus -- null pfiCollide*");
	return;
    }
    collide->setStatus(_status);
}

int
pfiGetCollideStatus(pfiCollide *collide)
{ 
    if (collide == NULL)
    {
	pfNotify(PFNFY_WARN, PFNFY_USAGE, 
	    "pfiGetCollideStatus -- null pfiCollide*");
	return -1;
    }
    return collide->getStatus();
}

void
pfiCollideDist(pfiCollide *collide, float _dist)
{ 
    if (collide == NULL)
    {
	pfNotify(PFNFY_WARN, PFNFY_USAGE, 
	    "pfiCollideDist -- null pfiCollide*");
	return;
    }
    collide->setDist(_dist);
}

float
pfiGetCollideDist(pfiCollide *collide)
{ 
    if (collide == NULL)
    {
	pfNotify(PFNFY_WARN, PFNFY_USAGE, 
	    "pfiGetCollideDist -- null pfiCollide*");
	return -1;
    }
    return collide->getDist();
}

void
pfiCollideHeightAboveGrnd(pfiCollide *collide, float _dist)
{ 
    if (collide == NULL)
    {
	pfNotify(PFNFY_WARN, PFNFY_USAGE, 
	    "pfiCollideHeightAboveGrnd -- null pfiCollide*");
	return;
    }
    collide->setHeightAboveGrnd(_dist);
}

float
pfiGetCollideHeightAboveGrnd(pfiCollide *collide)
{ 
    if (collide == NULL)
    {
	pfNotify(PFNFY_WARN, PFNFY_USAGE, 
	    "pfiGetCollideHeightAboveGrnd -- null pfiCollide*");
	return -1;
    }
    return collide->getHeightAboveGrnd();
}

void
pfiCollideGroundNode(pfiCollide *collide, pfNode* _ground)
{ 
    if (collide == NULL)
    {
	pfNotify(PFNFY_WARN, PFNFY_USAGE, 
	    "pfiCollideGroundNode -- null pfiCollide*");
	return;
    }
    collide->setGroundNode(_ground);
}

pfNode*
pfiGetCollideGroundNode(pfiCollide *collide)
{ 
    if (collide == NULL)
    {
	pfNotify(PFNFY_WARN, PFNFY_USAGE, 
	    "pfiGetCollideGroundNode -- null pfiCollide*");
	return NULL;
    }
    return collide->getGroundNode();
}

void
pfiCollideObjNode(pfiCollide *collide, pfNode* _db)
{ 
    if (collide == NULL)
    {
	pfNotify(PFNFY_WARN, PFNFY_USAGE, 
	    "pfiCollideObjNode -- null pfiCollide*");
	return;
    }
    collide->setObjNode(_db);
}

pfNode*
pfiGetCollideObjNode(pfiCollide *collide)
{ 
    if (collide == NULL)
    {
	pfNotify(PFNFY_WARN, PFNFY_USAGE, 
	    "pfiGetCollideObjNode -- null pfiCollide*");
	return NULL;
    }
    return collide->getObjNode();
}

void
pfiCollideXformCoordCurMotionParams(pfiCollide *collide, 
		pfCoord* _pos, pfCoord* _prevPos, float _speed)
{ 
    if (collide == NULL)
    {
	pfNotify(PFNFY_WARN, PFNFY_USAGE, 
	    "pfiCollideXformCoordCurMotionParams -- null pfiCollide*");
	return;
    }
    collide->setCurMotionParams(_pos, _prevPos, _speed);
}

void
pfiGetCollideCurMotionParams(pfiCollide *collide, 
		pfCoord* _pos, pfCoord* _prevPos, float *_speed)
{ 
    if (collide == NULL)
    {
	pfNotify(PFNFY_WARN, PFNFY_USAGE, 
	    "pfiGetCollideCurMotionParams -- null pfiCollide*");
	return;
    }
    collide->getCurMotionParams(_pos, _prevPos, _speed);
}

void
pfiCollideFunc(pfiCollide *collide, 
			    pfiCollideFuncType _func, void *_data)
{ 
    if (collide == NULL)
    {
	pfNotify(PFNFY_WARN, PFNFY_USAGE, 
	    "pfiCollideFunc -- null pfiCollide*");
	return;
    }
    collide->setCollisionFunc(_func, _data);
}

void
pfiGetCollideFunc(pfiCollide *collide, 
			    pfiCollideFuncType *_func, void **_data)
{ 
    if (collide == NULL)
    {
	pfNotify(PFNFY_WARN, PFNFY_USAGE, 
	    "pfiGetCollideFunc -- null pfiCollide*");
	return;
    }
    collide->getCollisionFunc(_func, _data);
}

int
pfiUpdateCollide(pfiCollide *collide)
{ 
    if (collide == NULL)
    {
	pfNotify(PFNFY_WARN, PFNFY_USAGE, 
	    "pfiUpdateCollide -- null pfiCollide*");
	return -1;
    }
    return collide->update();
}