// This source file is part of HGamer3D
// (A project to enable 3D game development in Haskell)
// For the latest info, see http://www.althainz.de/HGamer3D.html
//
// (c) 2011, 2012 Peter Althainz
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
//
// ClassPtr.h
// Here are the methods defined, which do the class pointer
// marshalling and the casting of subclasses to higher classes
#include "wchar.h"
#ifndef CLASSPTR_INCLUDE_H
#define CLASSPTR_INCLUDE_H
typedef struct hg3dclass_struct {
void *ptr;
void *fptr;
} hg3dclass_struct;
void *getHG3DClassPtr(hg3dclass_struct inSt, const char* className);
typedef void ClassHG3DBulletDefaultCreator;
hg3dclass_struct getHG3DClass_HG3DBulletDefaultCreator(void *ptrIn);
typedef void ClassHG3DMotionStateHandler;
hg3dclass_struct getHG3DClass_HG3DMotionStateHandler(void *ptrIn);
typedef void ClassHG3DRigidBodyCreator;
hg3dclass_struct getHG3DClass_HG3DRigidBodyCreator(void *ptrIn);
typedef void ClassbtActionInterface;
hg3dclass_struct getHG3DClass_btActionInterface(void *ptrIn);
typedef void ClassbtBroadphaseInterface;
hg3dclass_struct getHG3DClass_btBroadphaseInterface(void *ptrIn);
typedef void ClassbtCapsuleShapeX;
hg3dclass_struct getHG3DClass_btCapsuleShapeX(void *ptrIn);
typedef void ClassbtCapsuleShapeZ;
hg3dclass_struct getHG3DClass_btCapsuleShapeZ(void *ptrIn);
typedef void ClassbtCollisionConfiguration;
hg3dclass_struct getHG3DClass_btCollisionConfiguration(void *ptrIn);
typedef void ClassbtCollisionDispatcher;
hg3dclass_struct getHG3DClass_btCollisionDispatcher(void *ptrIn);
typedef void ClassbtCollisionWorld;
hg3dclass_struct getHG3DClass_btCollisionWorld(void *ptrIn);
typedef void ClassbtConeShapeX;
hg3dclass_struct getHG3DClass_btConeShapeX(void *ptrIn);
typedef void ClassbtConeShapeZ;
hg3dclass_struct getHG3DClass_btConeShapeZ(void *ptrIn);
typedef void ClassbtCylinderShapeX;
hg3dclass_struct getHG3DClass_btCylinderShapeX(void *ptrIn);
typedef void ClassbtCylinderShapeZ;
hg3dclass_struct getHG3DClass_btCylinderShapeZ(void *ptrIn);
typedef void ClassbtDefaultCollisionConfiguration;
hg3dclass_struct getHG3DClass_btDefaultCollisionConfiguration(void *ptrIn);
typedef void ClassbtDispatcher;
hg3dclass_struct getHG3DClass_btDispatcher(void *ptrIn);
typedef void ClassbtDynamicsWorld;
hg3dclass_struct getHG3DClass_btDynamicsWorld(void *ptrIn);
typedef void ClassbtMotionState;
hg3dclass_struct getHG3DClass_btMotionState(void *ptrIn);
typedef void ClassbtRigidBody;
hg3dclass_struct getHG3DClass_btRigidBody(void *ptrIn);
typedef void ClassbtSimpleBroadphase;
hg3dclass_struct getHG3DClass_btSimpleBroadphase(void *ptrIn);
typedef void ClassbtSimpleDynamicsWorld;
hg3dclass_struct getHG3DClass_btSimpleDynamicsWorld(void *ptrIn);
#endif