123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129 |
- package model
- import (
- "time"
- "go.mongodb.org/mongo-driver/bson/primitive"
- )
- type Transform struct {
- Pos Vect3 `bson:"pos" json:"pos"`
- Scale Vect3 `bson:"scale" json:"scale"`
- Rot Vect3 `bson:"rot" json:"rot"`
- }
- type Vect2 [2]float64
- type Vect3 [3]float64
- type Vect4 [4]float64
- type VectXYWH struct {
- Y float64 `bson:"y" json:"y"`
- X float64 `bson:"x" json:"x"`
- W float64 `bson:"w" json:"w"`
- H float64 `bson:"h" json:"h"`
- }
- type DynamicProp struct {
- Label string `bson:"label"`
- Name string `bson:"name"`
- Value float32 `bson:"value"`
- Type string `bson:"type"`
- }
- type ComponentTransform struct {
- Translate []float32 `bson:"translate"`
- Rotate []float32 `bson:"rotate"`
- }
- type ComponentMaterial struct {
- Thumbnail *OssType `bson:"thumbnail,omitempty"`
- Name string `bson:"name,omitempty"`
- Id string `bson:"id"`
- Offset *Vect2 `bson:"offset"`
- Repeat *Vect2 `bson:"repeat"`
- Props []*DynamicProp `bson:"props"`
- }
- type ComponentImage struct {
- Id string `bson:"id" json:"id"`
- Image *OssType `bson:"image" json:"image"`
- Width int `bson:"width" json:"width"`
- Height int `bson:"height" json:"height"`
- Position Vect2 `bson:"position" json:"position"`
- Scale Vect2 `bson:"scale" json:"scale"`
- Rotation float64 `bson:"rotation" json:"rotation"`
- FillType string `bson:"fillType" json:"fillType"`
- Technology string `bson:"technology" json:"technology"`
- BasicColor Vect3 `bson:"basicColor" json:"basicColor"`
- AotuFactor float32 `bson:"aotuFactor" json:"aotuFactor"`
- RoughFactor float32 `bson:"roughFactor" json:"roughFactor"`
- ReflectionFactor float32 `bson:"reflectionFactor" json:"reflectionFactor"`
- MetalFactor float32 `bson:"metalFactor" json:"metalFactor"`
- }
- type ProductComponentUv struct {
- Img *OssType `bson:"img"`
- Transform ComponentTransform `bson:"transform"`
- }
- type ProductComponent struct {
- Id string `bson:"id"`
- Uv *ProductComponentUv `bson:"uv"`
- BaseMaterial *ComponentMaterial `bson:"baseMaterial"`
- Images []*ComponentImage `bson:"images"`
- }
- type SceneProduct struct {
- FromId string `bson:"fromId,omitempty" json:"fromId"` //多模型的支持
- Id string `bson:"id,omitempty" json:"id"`
- Name string `bson:"name,omitempty" json:"name"`
- Type string `bson:"type,omitempty" json:"type"`
- Locked bool `bson:"locked,omitempty" json:"locked"`
- Visible bool `bson:"visible,omitempty" json:"visible"`
- Transform *Transform `bson:"transform,omitempty" json:"transform"`
- }
- type Product struct {
- Id string `bson:"id,omitempty"`
- Name string `bson:"name,omitempty"` //名字唯一
- Thumbnail OssType `bson:"thumbnail,omitempty"`
- CreateTime time.Time `bson:"createTime,omitempty"`
- Components []*ProductComponent `bson:"components,omitempty"`
- }
- type SceneOfflineRender struct {
- TaskId string `bson:"taskId,omitempty"`
- Image OssType `bson:"image,omitempty"`
- }
- type Scene struct {
- Id string `bson:"id,omitempty"`
- Name string `bson:"name,omitempty"` //名字唯一
- CreateTime time.Time `bson:"createTime,omitempty"`
- Thumbnail *OssType `bson:"thumbnail,omitempty"`
- Renders []*SceneOfflineRender `bson:"renders"`
- Product []*SceneProduct `bson:"renders"`
- }
- type Project struct {
- Id primitive.ObjectID `bson:"_id,omitempty"`
- Name string `bson:"name,omitempty"`
- Thumbnail OssType `bson:"thumbnail"`
- CreateTime time.Time `bson:"createTime,omitempty"`
- UpdateTime time.Time `bson:"updateTime,omitempty"`
- UserId primitive.ObjectID `bson:"userId,omitempty"`
- Products []*Product `bson:"products"`
- Scenes []*Scene `bson:"scenes"`
- }
- //declare interface DesignConfig {
- // scenes: {
- // lights: {
- // id: string;
- // name: string;
- // type: string;
- // }[];
- // }[];
- //}
|