package comm import ( "time" "go.mongodb.org/mongo-driver/bson/primitive" ) const ( MeshState_SetFile = 0 //create MeshState_SetOsgjs = 1 //模型转换到osgjs了,可以用于webgl显示了 MeshState_SetOsgjsFailded = -1 //模型转换到osgjs了,可以用于webgl显示了 MeshState_SetShadow = 2 //阴影已生成 ) type Evn3dOption struct { Rotation float64 `bson:"rotation" json:"rotation"` Exposure float64 `bson:"exposure" json:"exposure"` } type DesingSceneEnv3d struct { Id primitive.ObjectID `bson:"id,omitempty" json:"id"` Name string `bson:"name,omitempty" json:"name"` Thumbnail *OssType `bson:"thumbnail,omitempty" json:"thumbnail"` HDR *OssType `bson:"hdr,omitempty" json:"hdr"` Config *Evn3dHdrConf `bson:"config,omitempty" json:"config"` Options *Evn3dOption `bson:"options,omitempty" json:"options"` ToneMap *ToneMap `bson:"toneMap,omitempty" json:"toneMap"` } type Uvtransform struct { Scale float32 `bson:"scale" json:"scale"` Rotate float32 `bson:"rotate" json:"rotate"` OffsetX float32 `bson:"offsetX" json:"offsetX"` OffsetY float32 `bson:"offsetY" json:"offsetY"` FinalScale float32 `bson:"finalScale" json:"finalScale"` } type ImageMatConf struct { Image *OssType `bson:"image,omitempty" json:"image"` Id primitive.ObjectID `bson:"_id,omitempty" json:"_id"` } type SceneComponent struct { Name string `bson:"name,omitempty" json:"name"` FabricScope string `bson:"fabricScope,omitempty" json:"fabricScope,omitempty"` //面料使用的库 FabricId *primitive.ObjectID `bson:"fabricId,omitempty" json:"fabricId,omitempty"` CardId *primitive.ObjectID `bson:"cardId,omitempty" json:"cardId,omitempty"` MatType uint8 `bson:"matType,omitempty" json:"matType"` Imagemat *ImageMatConf `bson:"imageMat,omitempty" json:"imageMat,omitempty"` Uvtransform *Uvtransform `bson:"transform,omitempty" json:"transform"` Color *Vect3 `bson:"color,omitempty" json:"color"` GroupId uint64 `bson:"groupId,omitempty" json:"groupId"` Visible *bool `bson:"visible,omitempty" json:"visible"` } type SceneBackground struct { Id string `bson:"_id,omitempty" json:"_id"` Image *OssType `bson:"image,omitempty" json:"image"` Type int32 `bson:"type,omitempty" json:"type"` Color *Vect3 `bson:"color,omitempty" json:"color"` } type ModelTransform struct { Pos Vect3 `bson:"pos,omitempty" json:"pos"` Scale Vect3 `bson:"scale,omitempty" json:"scale"` Rotation Vect4 `bson:"rotation,omitempty" json:"rotation"` } type SceneModels struct { Id string `bson:"id,omitempty" json:"id"` MeshId *primitive.ObjectID `bson:"meshId,omitempty" json:"meshId,omitempty"` Mesh *DesignMesh `bson:"mesh,omitempty" json:"mesh,omitempty"` Type string `bson:"type,omitempty" json:"type"` TypeId *primitive.ObjectID `bson:"typeId,omitempty" json:"typeId,omitempty"` Transform ModelTransform `bson:"transform,omitempty" json:"transform,omitempty"` Components []*SceneComponent `bson:"components,omitempty" json:"components,omitempty"` } type SceneCamera struct { Id string `bson:"id,omitempty" json:"id"` Position *Vect3 `bson:"position,omitempty" json:"position"` Target *Vect3 `bson:"target,omitempty" json:"target"` Enable *bool `bson:"enable,omitempty" json:"enable"` } type Matrix [16]float64 type Light struct { Id string `bson:"id,omitempty" json:"id"` Type string `bson:"type,omitempty" json:"type"` Enable bool `bson:"enable,omitempty" json:"enable"` Matrix Matrix `bson:"matrix,omitempty" json:"matrix"` Color Vect3 `bson:"color,omitempty" json:"color"` Intensity float64 `bson:"intensity,omitempty" json:"intensity"` } type SceneLight struct { Enable bool `bson:"enable,omitempty" json:"enable"` List []*Light `bson:"list,omitempty" json:"list"` } type DesignScene struct { Id uint64 `bson:"id,omitempty" json:"id,omitempty"` Name string `bson:"name,omitempty" json:"name,omitempty"` Thumbnail *OssType `bson:"thumbnail,omitempty" json:"thumbnail,omitempty"` Images []*OssType `bson:"images,omitempty" json:"images,omitempty"` Videos []*OssType `bson:"videos,omitempty" json:"videos,omitempty"` Locks []string `bson:"locks,omitempty" json:"locks,omitempty"` Background *SceneBackground `bson:"background,omitempty" json:"background,omitempty"` Env *DesingSceneEnv3d `bson:"env,omitempty" json:"env,omitempty"` Components []*SceneComponent `bson:"components,omitempty" json:"components,omitempty"` Models []*SceneModels `bson:"models,omitempty" json:"models,omitempty"` Stickers []*Sticker `bson:"stickers,omitempty" json:"stickers,omitempty"` Lights *SceneLight `bson:"lights,omitempty" json:"lights,omitempty"` } type Design struct { Id primitive.ObjectID `bson:"_id,omitempty" json:"_id"` Mesh *DesignMesh `bson:"mesh,omitempty" json:"mesh"` Name string `bson:"name,omitempty" json:"name"` Thumbnail *OssType `bson:"thumbnail,omitempty" json:"thumbnail"` CreateTime time.Time `bson:"createTime,omitempty" json:"createTime"` Scenes []*DesignScene `bson:"scenes,omitempty" json:"scenes"` } type Sticker struct { Id string `bson:"id,omitempty" json:"id,omitempty"` Img *OssType `bson:"img,omitempty" json:"img,omitempty"` Scale *Vect2 `bson:"scale,omitempty" json:"scale,omitempty"` Visible *bool `bson:"visible,omitempty" json:"visible,omitempty"` Rotation float32 `bson:"rotation" json:"rotation"` Mirror *Vect2 `bson:"mirror,omitempty" json:"mirror,omitempty"` Anchors []*Vect2 `bson:"anchors,omitempty" json:"anchors,omitempty"` Config map[string]interface{} `bson:"config,omitempty" json:"config,omitempty"` }