Revision control
- //
- // Redistribution and use in source and binary forms, with or without
- // modification, are permitted provided that the following conditions
- // are met:
- // * Redistributions of source code must retain the above copyright
- // notice, this list of conditions and the following disclaimer.
- // * Redistributions in binary form must reproduce the above copyright
- // notice, this list of conditions and the following disclaimer in the
- // documentation and/or other materials provided with the distribution.
- // * Neither the name of NVIDIA CORPORATION nor the names of its
- // contributors may be used to endorse or promote products derived
- // from this software without specific prior written permission.
- //
- // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS ''AS IS'' AND ANY
- // EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- // IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- // PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
- // CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
- // EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
- // PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
- // PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
- // OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- //
- // Copyright (c) 2008-2021 NVIDIA Corporation. All rights reserved.
- // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved.
- // Copyright (c) 2001-2004 NovodeX AG. All rights reserved.
-
- #ifndef PX_PHYSICS_SCP_MATERIAL_CORE
- #define PX_PHYSICS_SCP_MATERIAL_CORE
-
- #include "foundation/PxVec3.h"
- #include "PsUserAllocated.h"
- #include "CmPhysXCommon.h"
- #include "PxMaterial.h"
- #include "PxsMaterialCore.h"
-
- namespace physx
- {
- class PxMaterial;
-
- namespace Sc
- {
- typedef PxsMaterialData MaterialData;
-
- class MaterialCore : public PxsMaterialCore
- {
- //= ATTENTION! =====================================================================================
- // Changing the data layout of this class breaks the binary serialization format. See comments for
- // PX_BINARY_SERIAL_VERSION. If a modification is required, please adjust the getBinaryMetaData
- // function. If the modification is made on a custom branch, please change PX_BINARY_SERIAL_VERSION
- // accordingly.
- //==================================================================================================
- public:
- MaterialCore(const MaterialData& desc) : PxsMaterialCore(desc) {}
- MaterialCore(const PxEMPTY) : PxsMaterialCore(PxEmpty) {}
- MaterialCore() {}
- ~MaterialCore() {}
- static void getBinaryMetaData(PxOutputStream& stream);
-
- PX_FORCE_INLINE void save(MaterialData& data) const { data = *this; }
- PX_FORCE_INLINE void load(const MaterialData& data) { static_cast<MaterialData&>(*this) = data; } // To make synchronization between master material and scene material table less painful
- };
-
- } // namespace Sc
-
- }
-
- #endif