123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167 |
- package model
- import (
- "time"
- "go.mongodb.org/mongo-driver/bson/primitive"
- )
- const (
- AssetState_Created = 1
- AssetState_Complated = 2
- AssetState_Publish2Qiye = 3
- )
- const (
- MeshState_SetFile = 0 //create
- MeshState_SetOsgjs = 1 //模型转换到osgjs了,可以用于webgl显示了
- MeshState_SetShadow = 2 //阴影已生成
- )
- type Asset struct {
- Id primitive.ObjectID `bson:"_id,omitempty" json:"_id"`
- UserId primitive.ObjectID `bson:"userId,omitempty" json:"userId,omitempty"`
- Name string `bson:"name,omitempty" json:"name"`
- CreateTime time.Time `bson:"createTime,omitempty" json:"createTime"`
- UpdateTime time.Time `bson:"updateTime,omitempty" json:"updateTime"`
- Categories []string `bson:"categories,omitempty" json:"categories,omitempty"` //所属分类Id
- State int32 `bson:"state,omitempty" json:"state"` //是否公开
- Thumbnail *OssType `bson:"thumbnail,omitempty" json:"thumbnail"`
- //图片相关
- Image *OssType `bson:"image,omitempty" json:"image"`
- //模型相关
- Materials *[]struct {
- Name string `bson:"name" json:"name"`
- Data *MatConfig `bson:"data" json:"data"`
- } `bson:"materials,omitempty" json:"materials"`
- Geometries []string `bson:"geometries,omitempty" json:"geometries"`
- Osgjs *OssType `bson:"osgjs,omitempty" json:"osgjs"`
- File *OssType `bson:"file,omitempty" json:"file"` //hdr or fbx
- Shadow *OssType `bson:"shadow,omitempty" json:"shadow,omitempty"`
- MeshState *int32 `bson:"meshState,omitempty" json:"meshState,omitempty"`
- }
- type UvSize struct {
- Width int `bson:"width,omitempty" json:"width,omitempty"`
- Height int `bson:"height,omitempty" json:"height,omitempty"`
- }
- type MeshMatConf struct {
- UvMap *OssType `bson:"uvmap" json:"uvmap"`
- UvSize *UvSize `bson:"uvsize" json:"uvsize"`
- Name string `bson:"name" json:"name"`
- Material *MatConfig `bson:"material" json:"material"`
- TechMaterial *TechMatConfig `bson:"techMaterial" json:"techMaterial"`
- Index int `bson:"index" json:"index"`
- Images []*ComponentImage `bson:"images" json:"images"`
- Visible *bool `bson:"visible" json:"visible"`
- }
- type AssetDecorateMesh struct {
- Id primitive.ObjectID `bson:"_id,omitempty" json:"_id"`
- UserId primitive.ObjectID `bson:"userId,omitempty" json:"userId,omitempty"`
- Name string `bson:"name,omitempty" json:"name"`
- CreateTime time.Time `bson:"createTime,omitempty" json:"createTime"`
- UpdateTime time.Time `bson:"updateTime,omitempty" json:"updateTime"`
- State int `bson:"state,omitempty" json:"state"` //created completed published
- Thumbnail *OssType `bson:"thumbnail,omitempty" json:"thumbnail"`
- Categories []string `bson:"categories,omitempty" json:"categories,omitempty"` //所属分类Id
- Components []*MeshMatConf `bson:"components,omitempty" json:"components"`
- Osgjs *OssType `bson:"osgjs,omitempty" json:"osgjs"`
- File *OssType `bson:"file,omitempty" json:"file"` //hdr or fbx
- Shadow *OssType `bson:"shadow,omitempty" json:"shadow,omitempty"`
- }
- type AssetTexture struct {
- Id primitive.ObjectID `bson:"_id,omitempty" json:"_id"`
- UserId primitive.ObjectID `bson:"userId,omitempty" json:"userId,omitempty"`
- Name string `bson:"name,omitempty" json:"name"`
- CreateTime time.Time `bson:"createTime,omitempty" json:"createTime"`
- UpdateTime time.Time `bson:"updateTime,omitempty" json:"updateTime"`
- Categories []string `bson:"categories,omitempty" json:"categories,omitempty"` //所属分类Id
- State int32 `bson:"state,omitempty" json:"state"` //是否公开
- Image *OssType `bson:"image,omitempty" json:"image"`
- }
- /*盒型*/
- type Boxtpl struct {
- Id primitive.ObjectID `bson:"_id,omitempty" json:"_id"`
- UserId primitive.ObjectID `bson:"userId,omitempty" json:"userId,omitempty"`
- Name string `bson:"name,omitempty" json:"name"`
- CreateTime time.Time `bson:"createTime,omitempty" json:"createTime"`
- UpdateTime time.Time `bson:"updateTime,omitempty" json:"updateTime"`
- State int `bson:"state,omitempty" json:"state"` //created completed published
- Thumbnail *OssType `bson:"thumbnail,omitempty" json:"thumbnail"`
- Categories []string `bson:"categories,omitempty" json:"categories,omitempty"` //所属分类Id
- Osgjs *OssType `bson:"osgjs,omitempty" json:"osgjs"`
- File *OssType `bson:"file,omitempty" json:"file"` //模型文件
- Shadow *OssType `bson:"shadow,omitempty" json:"shadow,omitempty"`
- Type int `bson:"type,omitempty" json:"type,omitempty"` //动态生成或模型文件 默认模型
- Components []*BoxtplComponent `bson:"components,omitempty" json:"components"` //模板部件
- }
- type BoxtplComponent struct {
- Name string `bson:"name,omitempty" json:"name"`
- Index int `bson:"index,omitempty" json:"index"`
- UV *BoxtplCompUv `bson:"uv,omitempty" json:"uv"`
- }
- type BoxtplCompUv struct {
- Width uint `bson:"width,omitempty" json:"width"`
- Height uint `bson:"height,omitempty" json:"height"`
- Image OssType `bson:"image,omitempty" json:"image"`
- }
- /*项目的盒型*/
- type ProjectBoxtpl struct {
- Id primitive.ObjectID `bson:"_id,omitempty" json:"_id"`
- ProjectId primitive.ObjectID `bson:"projectId,omitempty" json:"projectId,omitempty"`
- Name string `bson:"name,omitempty" json:"name"`
- CreateTime time.Time `bson:"createTime,omitempty" json:"createTime"`
- UpdateTime time.Time `bson:"updateTime,omitempty" json:"updateTime"`
- Thumbnail *OssType `bson:"thumbnail,omitempty" json:"thumbnail"`
- Osgjs *OssType `bson:"osgjs,omitempty" json:"osgjs"`
- File *OssType `bson:"file,omitempty" json:"file"` //模型文件
- Shadow *OssType `bson:"shadow,omitempty" json:"shadow,omitempty"`
- Type int `bson:"type,omitempty" json:"type,omitempty"` //动态生成或模型文件 默认模型
- Components []*BoxtplComponent `bson:"components,omitempty" json:"components"` //模板部件
- }
- type ProjectDecorateMesh struct {
- Id primitive.ObjectID `bson:"_id,omitempty" json:"_id"`
- ProjectId primitive.ObjectID `bson:"projectId,omitempty" json:"projectId,omitempty"`
- Name string `bson:"name,omitempty" json:"name"`
- CreateTime time.Time `bson:"createTime,omitempty" json:"createTime"`
- UpdateTime time.Time `bson:"updateTime,omitempty" json:"updateTime"`
- Thumbnail *OssType `bson:"thumbnail,omitempty" json:"thumbnail"`
- Osgjs *OssType `bson:"osgjs,omitempty" json:"osgjs"`
- File *OssType `bson:"file,omitempty" json:"file"` //hdr or fbx
- Shadow *OssType `bson:"shadow,omitempty" json:"shadow,omitempty"`
- Materials []*MeshMatConf `bson:"materials,omitempty" json:"materials"`
- }
- type AssetMaterial struct {
- Id primitive.ObjectID `bson:"_id,omitempty" json:"_id"`
- UserId primitive.ObjectID `bson:"userId,omitempty" json:"userId"` //用户ID
- Name string `bson:"name,omitempty" json:"name"`
- Thumbnail *OssType `bson:"thumbnail,omitempty" json:"thumbnail"`
- CreateTime time.Time `bson:"createTime,omitempty" json:"createTime"`
- UpdateTime time.Time `bson:"updateTime,omitempty" json:"updateTime"`
- Config *MatConfig `bson:"config,omitempty" json:"config"`
- State int `bson:"state,omitempty" json:"state"` //created completed published
- Categories []string `bson:"categories,omitempty" json:"categories,omitempty"` //所属分类Id
- }
|