PhysX SDK 3.2 API Reference: PxMaterial.h Source File

PhysX SDK 3.2 API

PxMaterial.h

Go to the documentation of this file.
00001 // This code contains NVIDIA Confidential Information and is disclosed to you 
00002 // under a form of NVIDIA software license agreement provided separately to you.
00003 //
00004 // Notice
00005 // NVIDIA Corporation and its licensors retain all intellectual property and
00006 // proprietary rights in and to this software and related documentation and 
00007 // any modifications thereto. Any use, reproduction, disclosure, or 
00008 // distribution of this software and related documentation without an express 
00009 // license agreement from NVIDIA Corporation is strictly prohibited.
00010 // 
00011 // ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES
00012 // NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO
00013 // THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT,
00014 // MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE.
00015 //
00016 // Information and code furnished is believed to be accurate and reliable.
00017 // However, NVIDIA Corporation assumes no responsibility for the consequences of use of such
00018 // information or for any infringement of patents or other rights of third parties that may
00019 // result from its use. No license is granted by implication or otherwise under any patent
00020 // or patent rights of NVIDIA Corporation. Details are subject to change without notice.
00021 // This code supersedes and replaces all information previously supplied.
00022 // NVIDIA Corporation products are not authorized for use as critical
00023 // components in life support devices or systems without express written approval of
00024 // NVIDIA Corporation.
00025 //
00026 // Copyright (c) 2008-2012 NVIDIA Corporation. All rights reserved.
00027 // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved.
00028 // Copyright (c) 2001-2004 NovodeX AG. All rights reserved.  
00029 
00030 
00031 #ifndef PX_PHYSICS_NXMATERIAL
00032 #define PX_PHYSICS_NXMATERIAL
00033 
00037 #include "PxPhysX.h"
00038 #include "PxMaterialFlags.h"
00039 #include "common/PxSerialFramework.h"
00040 
00041 #ifndef PX_DOXYGEN
00042 namespace physx
00043 {
00044 #endif
00045 
00046 class PxScene;
00047 
00048 class PxMaterial : public PxSerializable
00049 {
00050 public:
00051 
00062     virtual     void            release() = 0;
00063 
00072     virtual PxU32               getReferenceCount() const = 0;
00073 
00085     virtual     void            setDynamicFriction(PxReal coef) = 0;
00086 
00094     virtual     PxReal          getDynamicFriction() const = 0;
00095 
00107     virtual     void            setStaticFriction(PxReal coef) = 0;
00108 
00115     virtual     PxReal          getStaticFriction() const = 0;
00116 
00128     virtual     void            setRestitution(PxReal rest) = 0;
00129 
00139     virtual     PxReal          getRestitution() const = 0;
00140 
00152     virtual     void            setFlag(PxMaterialFlag::Enum flag, bool) = 0;
00153 
00154 
00163     virtual     void            setFlags( PxMaterialFlags inFlags ) = 0;
00164 
00172     virtual     PxMaterialFlags getFlags() const = 0;
00173 
00185     virtual     void            setFrictionCombineMode(PxCombineMode::Enum combMode) = 0;
00186 
00196     virtual     PxCombineMode::Enum getFrictionCombineMode() const = 0;
00197 
00209     virtual     void            setRestitutionCombineMode(PxCombineMode::Enum combMode) = 0;
00210 
00220     virtual     PxCombineMode::Enum getRestitutionCombineMode() const = 0;
00221 
00222     //public variables:
00223                 void*           userData;   
00224 
00225     virtual     const char*     getConcreteTypeName() const                 {   return "PxMaterial"; }
00226 
00227 protected:
00228                                 PxMaterial(PxRefResolver& v) :  PxSerializable(v)   {}
00229     PX_INLINE                   PxMaterial() : userData(NULL)       {}
00230     virtual                     ~PxMaterial()                       {}
00231     virtual     bool            isKindOf(const char* name)  const       {   return !strcmp("PxMaterial", name) || PxSerializable::isKindOf(name); }
00232 
00233 };
00234 
00235 #ifndef PX_DOXYGEN
00236 } // namespace physx
00237 #endif
00238 
00240 #endif


Copyright © 2008-2012 NVIDIA Corporation, 2701 San Tomas Expressway, Santa Clara, CA 95050 U.S.A. All rights reserved. www.nvidia.com