ClothingAssetAuthoring.h
00001 /* 00002 * Copyright (c) 2008-2017, NVIDIA CORPORATION. All rights reserved. 00003 * 00004 * NVIDIA CORPORATION and its licensors retain all intellectual property 00005 * and proprietary rights in and to this software, related documentation 00006 * and any modifications thereto. Any use, reproduction, disclosure or 00007 * distribution of this software and related documentation without an express 00008 * license agreement from NVIDIA CORPORATION is strictly prohibited. 00009 */ 00010 00011 00012 #ifndef CLOTHING_ASSET_AUTHORING_H 00013 #define CLOTHING_ASSET_AUTHORING_H 00014 00015 #include "Asset.h" 00016 #include "IProgressListener.h" 00017 #include "ClothingPhysicalMesh.h" 00018 00019 00020 namespace nvidia 00021 { 00022 namespace apex 00023 { 00024 00025 PX_PUSH_PACK_DEFAULT 00026 00027 00028 class ClothingPhysicalMesh; 00029 00030 00034 class ClothingAssetAuthoring : public AssetAuthoring 00035 { 00036 public: 00037 00041 virtual void setDefaultConstrainCoefficients(const ClothingConstrainCoefficients& coeff) = 0; 00042 00046 virtual void setInvalidConstrainCoefficients(const ClothingConstrainCoefficients& coeff) = 0; 00047 00063 virtual void setMeshes(uint32_t lod, RenderMeshAssetAuthoring* graphicalMesh, ClothingPhysicalMesh* physicalMesh, 00064 float normalResemblance = 25, bool ignoreUnusedVertices = true, IProgressListener* progress = NULL) = 0; 00065 00066 00070 virtual bool addPlatformToGraphicalLod(uint32_t lod, PlatformTag platform) = 0; 00071 00075 virtual bool removePlatform(uint32_t lod, PlatformTag platform) = 0; 00076 00080 virtual uint32_t getNumPlatforms(uint32_t lod) const = 0; 00081 00085 virtual PlatformTag getPlatform(uint32_t lod, uint32_t i) const = 0; 00086 00090 virtual uint32_t getNumLods() const = 0; 00091 00097 virtual int32_t getLodValue(uint32_t lod) const = 0; 00098 00102 virtual void clearMeshes() = 0; 00103 00107 virtual ClothingPhysicalMesh* getClothingPhysicalMesh(uint32_t graphicalLod) const = 0; 00108 00117 virtual void setBoneInfo(uint32_t boneIndex, const char* boneName, const PxMat44& bindPose, int32_t parentIndex) = 0; 00118 00124 virtual void setRootBone(const char* boneName) = 0; 00125 00133 virtual uint32_t addBoneConvex(const char* boneName, const PxVec3* positions, uint32_t numPositions) = 0; 00134 00142 virtual uint32_t addBoneConvex(uint32_t boneIndex, const PxVec3* positions, uint32_t numPositions) = 0; 00143 00152 virtual void addBoneCapsule(const char* boneName, float capsuleRadius, float capsuleHeight, const PxMat44& localPose) = 0; 00153 00162 virtual void addBoneCapsule(uint32_t boneIndex, float capsuleRadius, float capsuleHeight, const PxMat44& localPose) = 0; 00163 00167 virtual void clearBoneActors(const char* boneName) = 0; 00168 00172 virtual void clearBoneActors(uint32_t boneIndex) = 0; 00173 00177 virtual void clearAllBoneActors() = 0; 00178 00191 virtual void setCollision(const char** boneNames, float* radii, PxVec3* localPositions, uint32_t numSpheres, uint16_t* pairs, uint32_t numIndices) = 0; 00192 00196 virtual void setCollision(uint32_t* boneIndices, float* radii, PxVec3* localPositions, uint32_t numSpheres, uint16_t* pairs, uint32_t numIndices) = 0; 00197 00201 virtual void clearCollision() = 0; 00202 00208 virtual void setSimulationHierarchicalLevels(uint32_t levels) = 0; 00209 00210 00214 virtual void setSimulationThickness(float thickness) = 0; 00215 00219 virtual void setSimulationVirtualParticleDensity(float density) = 0; 00220 00224 virtual void setSimulationSleepLinearVelocity(float sleep) = 0; 00225 00229 virtual void setSimulationGravityDirection(const PxVec3& gravity) = 0; 00230 00239 virtual void setSimulationDisableCCD(bool disable) = 0; 00240 00244 virtual void setSimulationTwowayInteraction(bool enable) = 0; 00245 00251 virtual void setSimulationUntangling(bool enable) = 0; 00252 00256 virtual void setSimulationRestLengthScale(float scale) = 0; 00257 00265 virtual void setExportScale(float scale) = 0; 00266 00281 virtual void applyTransformation(const PxMat44& transformation, float scale, bool applyToGraphics, bool applyToPhysics) = 0; 00282 00291 virtual void updateBindPoses(const PxMat44* newBindPoses, uint32_t newBindPosesCount, bool isInternalOrder, bool maintainCollisionWorldSpace) = 0; 00292 00297 virtual void setDeriveNormalsFromBones(bool enable) = 0; 00298 00302 virtual NvParameterized::Interface* getMaterialLibrary() = 0; 00303 00311 virtual bool setMaterialLibrary(NvParameterized::Interface* materialLibrary, uint32_t materialIndex, bool transferOwnership) = 0; 00312 00324 virtual ::NvParameterized::Interface* getRenderMeshAssetAuthoring(uint32_t lodLevel) const = 0; 00325 00329 virtual bool getBoneBindPose(uint32_t boneIndex, PxMat44& bindPose) const = 0; 00330 00334 virtual bool setBoneBindPose(uint32_t boneIndex, const PxMat44& bindPose) = 0; 00335 }; 00336 00337 PX_POP_PACK 00338 00339 } // namespace nvidia 00340 } // namespace nvidia 00341 00342 #endif // CLOTHING_ASSET_AUTHORING_H
Generated on Fri Dec 15 2017 13:58:20 Copyright © 2012-2017 NVIDIA Corporation, 2701 San Tomas Expressway, Santa Clara, CA 95050 U.S.A. All rights reserved.