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 Tue Aug 1 2017 22:43:52

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