design.go 6.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136
  1. package comm
  2. import (
  3. "time"
  4. "go.mongodb.org/mongo-driver/bson/primitive"
  5. )
  6. const (
  7. MeshState_SetFile = 0 //create
  8. MeshState_SetOsgjs = 1 //模型转换到osgjs了,可以用于webgl显示了
  9. MeshState_SetOsgjsFailded = -1 //模型转换到osgjs了,可以用于webgl显示了
  10. MeshState_SetShadow = 2 //阴影已生成
  11. )
  12. type Evn3dOption struct {
  13. Rotation float64 `bson:"rotation" json:"rotation"`
  14. Exposure float64 `bson:"exposure" json:"exposure"`
  15. }
  16. type DesingSceneEnv3d struct {
  17. Id primitive.ObjectID `bson:"id,omitempty" json:"id"`
  18. Name string `bson:"name,omitempty" json:"name"`
  19. Thumbnail *OssType `bson:"thumbnail,omitempty" json:"thumbnail"`
  20. HDR *OssType `bson:"hdr,omitempty" json:"hdr"`
  21. Config *Evn3dHdrConf `bson:"config,omitempty" json:"config"`
  22. Options *Evn3dOption `bson:"options,omitempty" json:"options"`
  23. ToneMap *ToneMap `bson:"toneMap,omitempty" json:"toneMap"`
  24. }
  25. type Uvtransform struct {
  26. Scale float32 `bson:"scale" json:"scale"`
  27. Rotate float32 `bson:"rotate" json:"rotate"`
  28. OffsetX float32 `bson:"offsetX" json:"offsetX"`
  29. OffsetY float32 `bson:"offsetY" json:"offsetY"`
  30. FinalScale float32 `bson:"finalScale" json:"finalScale"`
  31. }
  32. type ImageMatConf struct {
  33. Image *OssType `bson:"image,omitempty" json:"image"`
  34. Id primitive.ObjectID `bson:"_id,omitempty" json:"_id"`
  35. }
  36. type SceneComponent struct {
  37. Name string `bson:"name,omitempty" json:"name"`
  38. FabricScope string `bson:"fabricScope,omitempty" json:"fabricScope,omitempty"` //面料使用的库
  39. FabricId *primitive.ObjectID `bson:"fabricId,omitempty" json:"fabricId,omitempty"`
  40. CardId *primitive.ObjectID `bson:"cardId,omitempty" json:"cardId,omitempty"`
  41. MatType uint8 `bson:"matType,omitempty" json:"matType"`
  42. Imagemat *ImageMatConf `bson:"imageMat,omitempty" json:"imageMat,omitempty"`
  43. Uvtransform *Uvtransform `bson:"transform,omitempty" json:"transform"`
  44. Color *Vect3 `bson:"color,omitempty" json:"color"`
  45. GroupId uint64 `bson:"groupId,omitempty" json:"groupId"`
  46. Visible *bool `bson:"visible,omitempty" json:"visible"`
  47. }
  48. type SceneBackground struct {
  49. Id string `bson:"_id,omitempty" json:"_id"`
  50. Image *OssType `bson:"image,omitempty" json:"image"`
  51. Type int32 `bson:"type,omitempty" json:"type"`
  52. Color *Vect3 `bson:"color,omitempty" json:"color"`
  53. }
  54. type ModelTransform struct {
  55. Pos Vect3 `bson:"pos,omitempty" json:"pos"`
  56. Scale Vect3 `bson:"scale,omitempty" json:"scale"`
  57. Rotation Vect4 `bson:"rotation,omitempty" json:"rotation"`
  58. }
  59. type SceneModels struct {
  60. Id string `bson:"id,omitempty" json:"id"`
  61. MeshId *primitive.ObjectID `bson:"meshId,omitempty" json:"meshId,omitempty"`
  62. Mesh *DesignMesh `bson:"mesh,omitempty" json:"mesh,omitempty"`
  63. Type string `bson:"type,omitempty" json:"type"`
  64. TypeId *primitive.ObjectID `bson:"typeId,omitempty" json:"typeId,omitempty"`
  65. Transform ModelTransform `bson:"transform,omitempty" json:"transform,omitempty"`
  66. Components []*SceneComponent `bson:"components,omitempty" json:"components,omitempty"`
  67. }
  68. type SceneCamera struct {
  69. Id string `bson:"id,omitempty" json:"id"`
  70. Position *Vect3 `bson:"position,omitempty" json:"position"`
  71. Target *Vect3 `bson:"target,omitempty" json:"target"`
  72. Enable *bool `bson:"enable,omitempty" json:"enable"`
  73. }
  74. type Matrix [16]float64
  75. type Light struct {
  76. Id string `bson:"id,omitempty" json:"id"`
  77. Type string `bson:"type,omitempty" json:"type"`
  78. Enable bool `bson:"enable,omitempty" json:"enable"`
  79. Matrix Matrix `bson:"matrix,omitempty" json:"matrix"`
  80. Color Vect3 `bson:"color,omitempty" json:"color"`
  81. Intensity float64 `bson:"intensity,omitempty" json:"intensity"`
  82. }
  83. type SceneLight struct {
  84. Enable bool `bson:"enable,omitempty" json:"enable"`
  85. List []*Light `bson:"list,omitempty" json:"list"`
  86. }
  87. type DesignScene struct {
  88. Id uint64 `bson:"id,omitempty" json:"id,omitempty"`
  89. Name string `bson:"name,omitempty" json:"name,omitempty"`
  90. Thumbnail *OssType `bson:"thumbnail,omitempty" json:"thumbnail,omitempty"`
  91. Images []*OssType `bson:"images,omitempty" json:"images,omitempty"`
  92. Videos []*OssType `bson:"videos,omitempty" json:"videos,omitempty"`
  93. Locks []string `bson:"locks,omitempty" json:"locks,omitempty"`
  94. Background *SceneBackground `bson:"background,omitempty" json:"background,omitempty"`
  95. Env *DesingSceneEnv3d `bson:"env,omitempty" json:"env,omitempty"`
  96. Components []*SceneComponent `bson:"components,omitempty" json:"components,omitempty"`
  97. Models []*SceneModels `bson:"models,omitempty" json:"models,omitempty"`
  98. Stickers []*Sticker `bson:"stickers,omitempty" json:"stickers,omitempty"`
  99. Lights *SceneLight `bson:"lights,omitempty" json:"lights,omitempty"`
  100. }
  101. type Design struct {
  102. Id primitive.ObjectID `bson:"_id,omitempty" json:"_id"`
  103. Mesh *DesignMesh `bson:"mesh,omitempty" json:"mesh"`
  104. Name string `bson:"name,omitempty" json:"name"`
  105. Thumbnail *OssType `bson:"thumbnail,omitempty" json:"thumbnail"`
  106. CreateTime time.Time `bson:"createTime,omitempty" json:"createTime"`
  107. Scenes []*DesignScene `bson:"scenes,omitempty" json:"scenes"`
  108. }
  109. type Sticker struct {
  110. Id string `bson:"id,omitempty" json:"id,omitempty"`
  111. Img *OssType `bson:"img,omitempty" json:"img,omitempty"`
  112. Scale *Vect2 `bson:"scale,omitempty" json:"scale,omitempty"`
  113. Visible *bool `bson:"visible,omitempty" json:"visible,omitempty"`
  114. Rotation float32 `bson:"rotation" json:"rotation"`
  115. Mirror *Vect2 `bson:"mirror,omitempty" json:"mirror,omitempty"`
  116. Anchors []*Vect2 `bson:"anchors,omitempty" json:"anchors,omitempty"`
  117. Config map[string]interface{} `bson:"config,omitempty" json:"config,omitempty"`
  118. }