Logo
ModelData.h
1#pragma once
2
3#include "Types.h"
4
5#include "gfx/mdl/ModelData.h"
6#include "gfx/Material.h"
7#include "Physics/Physics.h"
8#include "MaterialInfo.h"
9
10namespace SharpKmyGfx
11{
12 ref class Render;
13 ref class Material;
14 ref class MaterialInstance;
15
16 public ref class ModelData
17 {
18 public:
19 kmyGfx::ModelData *obj;
20 bool own = false;
21
22 ModelData(System::String^ path, System::Guid guid, bool vtxCompress);
23 ModelData(System::String^ path);
24
25 //Unused.
26 ModelData(kmyGfx::ModelData *o)
27 {
28 obj = o;
29 }
30
31 ~ModelData();
32
33 void load();
34 void unload();
35 MaterialInfo^ getMaterialInfo(int index);
36
38
39 void initializeByDef(System::String ^path);
40 void renamePath(System::String^ path);
41
44 static SharpKmyMath::Vector3 getCenterImpl(kmyGfx::ModelData *obj);
45
46 void setBlendType(System::String ^mtlname, int type);
47 int getMaterialIndex(System::String ^name);
48 int getMeshClusterMaterialIndex(int index);
49 size_t getIndexCount(int index);
50 int getBoneCount(int index);
51 Material^ getMaterial(u32 index);
52 bool isOverInfluenceCount(int index);
53 array<System::String^> ^getTextureNameList();
54 System::Collections::Generic::List<System::String^>^ getMotionNameList();
55 System::Collections::Generic::Dictionary<System::String^, SharpKmyMath::Vector2>^ getMotion();
56 System::String^ getPath();
57 void saveDefFile(System::String^ path);
58 bool isModified();
59 void reconstruct();
61 bool evalMaterialCount() { return obj ? obj->evalMaterialCount() : true; }
62 void validateVertexDesc() { if (obj)obj->validateVertexDesc(); }
63 void clearMaterialGUID() { if (obj)obj->clearMaterialGUID(); }
64 void setMaterialGUID(int index, System::Guid id);
65 void setVertexCompressMode(bool compress);
67 void setVrmSpringBoneLimit(float limit);
68 float getStartTime();
69 float getEndTime();
72 array<SharpKmyMath::Vector3> ^getMeshCollisionVertices();
73 array<System::String^> ^getNodeNameList();
74
77 if (obj)obj->setSkinnedBoundSphereRadiusScale(v);
78 }
80 return obj ? obj->getSkinnedBoundSphereRadiusScale() : 1.0f;
81 }
82
83 private:
84
85#ifdef KMY_USE_VRM
86 public:
87 enum class VrmLookAtType : int
88 {
89 None = -1,
90 Bone,
91 BlendShape,
92 Texture,
93 };
94 public:
95 ModelExporter::ModelDataWrap^ GetModelData();
96 bool isVrm();
97 int vrmGetTextureNum();
98 System::String^ vrmGetTextureName(int index);
99 void vrmStoreTextureToFile(int index, System::String^ path);
100 array<Byte>^ vrmGetImageArray(int index);
101
102 System::String^ vrmGetMaterialDef(int index);
103 VrmLookAtType vrmGetLookAtType();
104#endif
105 };
106}
Definition: Material.h:6
Definition: MaterialInfo.h:7
Definition: ModelData.h:17
System::Collections::Generic::List< System::String^> getMotionNameList()
Definition: ModelData.cpp:267
float getStartTime()
Definition: ModelData.cpp:303
void setMaterialGUID(int index, System::Guid id)
Definition: ModelData.cpp:490
array< System::String^> getTextureNameList()
Definition: ModelData.cpp:212
void renamePath(System::String^ path)
Definition: ModelData.cpp:101
SharpKmyMath::Vector3 getPreviewAngle()
Definition: ModelData.cpp:327
System::String getPath()
Definition: ModelData.cpp:203
void clearMaterialGUID()
Definition: ModelData.h:63
bool evalMaterialCount()
Definition: ModelData.h:61
bool getVertexCompressMode()
Definition: ModelData.cpp:508
void constructPBRMaterial()
Definition: ModelData.cpp:356
bool hasUnTriangulateMesh()
Definition: ModelData.cpp:577
void setBlendType(System::String ^mtlname, int type)
Definition: ModelData.cpp:114
SharpKmyMath::Vector3 getPreviewOffset()
Definition: ModelData.cpp:317
float getSkinnedBoundSphereRadiusScale()
Definition: ModelData.h:79
SharpKmyMath::Vector3 getSize()
Definition: ModelData.cpp:429
int getMaterialIndex(System::String ^name)
Definition: ModelData.cpp:129
array< System::String^> getNodeNameList()
Definition: ModelData.cpp:246
MaterialInfo getMaterialInfo(int index)
Definition: ModelData.cpp:77
Material getMaterial(u32 index)
Definition: ModelData.cpp:180
kmyGfx::ModelData * obj
Definition: ModelData.h:19
bool isOverInfluenceCount(int index)
Definition: ModelData.cpp:190
void load()
Definition: ModelData.cpp:50
void ReleaseForToolWithSync()
Definition: ModelData.cpp:69
void reconstruct()
Definition: ModelData.cpp:344
static SharpKmyMath::Vector3 getCenterImpl(kmyGfx::ModelData *obj)
Definition: ModelData.cpp:462
int getMeshClusterMaterialIndex(int index)
Definition: ModelData.cpp:145
void setSkinnedBoundSphereRadiusScale(float v)
Definition: ModelData.h:76
ModelData(System::String^ path, System::Guid guid, bool vtxCompress)
Definition: ModelData.cpp:15
void unload()
Definition: ModelData.cpp:58
float getEndTime()
Definition: ModelData.cpp:310
bool isModified()
Definition: ModelData.cpp:350
~ModelData()
Definition: ModelData.cpp:36
void validateVertexDesc()
Definition: ModelData.h:62
bool own
Definition: ModelData.h:20
ModelData(kmyGfx::ModelData *o)
Definition: ModelData.h:26
size_t getIndexCount(int index)
Definition: ModelData.cpp:160
void initializeByDef(System::String ^path)
Definition: ModelData.cpp:88
System::Collections::Generic::Dictionary< System::String^, SharpKmyMath::Vector2 > getMotion()
Definition: ModelData.cpp:284
SharpKmyMath::Vector3 getCenter()
Definition: ModelData.cpp:454
void saveDefFile(System::String^ path)
Definition: ModelData.cpp:337
int getBoneCount(int index)
Definition: ModelData.cpp:173
array< SharpKmyMath::Vector3 > getMeshCollisionVertices()
Definition: ModelData.cpp:527
void setVrmSpringBoneLimit(float limit)
Definition: ModelData.cpp:518
void setVertexCompressMode(bool compress)
Definition: ModelData.cpp:499
Definition: Texture.h:12
Definition: Asset.h:4
Definition: Vector3.h:7