newly PrimitiveData struct and Primitive class. Can't Run!!!

next step is to support PrimitiveVDM.
This commit is contained in:
2024-05-23 02:19:40 +08:00
parent e27442a0b4
commit 40ce978f85
14 changed files with 509 additions and 388 deletions

View File

@@ -3,10 +3,9 @@
#include<hgl/type/Map.h>
#include<hgl/type/String.h>
#include<hgl/graph/AABB.h>
#include<hgl/graph/VKPrimitiveData.h>
#include<hgl/graph/VK.h>
VK_NAMESPACE_BEGIN
/**
* 单一图元数据访问接口<br>
*
@@ -26,31 +25,35 @@ class Primitive
protected:
AnsiString prim_name;
PrimitiveData *prim_data;
protected:
AABB BoundingBox;
public:
protected:
Primitive(const AnsiString &n)
Primitive(const AnsiString &pn,PrimitiveData *pd)
{
prim_name=n;
prim_name=pn;
prim_data=pd;
}
virtual ~Primitive()=0;
public:
virtual ~Primitive()=default;
public:
virtual const VkDeviceSize GetVertexCount ()const=0;
virtual const int GetVACount ()const=0;
virtual const bool GetVABAccess (const AnsiString &,VABAccess *)=0;
virtual const IBAccess * GetIBAccess ()const=0;
const AnsiString & GetName ()const{ return prim_name; }
const VkDeviceSize GetVertexCount ()const;
const int GetVACount ()const;
VABAccess * GetVABAccess (const AnsiString &);
IBAccess * GetIBAccess ();
const AABB & GetBoundingBox ()const{return BoundingBox;}
const AABB & GetBoundingBox ()const{return BoundingBox;}
};//class Primitive
Primitive *CreatePrimitive(const PrimitiveData *);
Primitive *CreatePrimitivePrivate(const AnsiString &,PrimitiveData *);
Primitive *CreatePrimitivePrivate(VertexDataManager *,const AnsiString &,PrimitiveData *);
VK_NAMESPACE_END