properties.ts 4.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131
  1. import { Helpers } from "./helpers/Helpers";
  2. import { Vector2, Vector3, Color3, Color4, Quaternion, Size, Texture, RenderTargetTexture, DynamicTexture, BaseTexture, CubeTexture, HDRCubeTexture, Sound, ArcRotateCamera, FreeCamera, Scene, TransformNode, AbstractMesh, Mesh, StandardMaterial, PBRMaterial, PhysicsImpostor, ImageProcessingConfiguration, ColorCurves } from "babylonjs";
  3. export const PROPERTIES = {
  4. /** Format the given object :
  5. * If a format function exists, returns the result of this function.
  6. * If this function doesn't exists, return the object type instead
  7. */
  8. format: (obj: any): any => {
  9. let type = Helpers.GET_TYPE(obj) || 'type_not_defined';
  10. if ((<any>PROPERTIES)[type] && (<any>PROPERTIES)[type].format) {
  11. return (<any>PROPERTIES)[type].format(obj);
  12. } else {
  13. return Helpers.GET_TYPE(obj);
  14. }
  15. },
  16. 'type_not_defined': {
  17. properties: new Array(),
  18. format: () => ''
  19. },
  20. 'Vector2': {
  21. type: Vector2,
  22. format: (vec: Vector2) => { return `x:${Helpers.Trunc(vec.x)}, y:${Helpers.Trunc(vec.y)}`; }
  23. },
  24. 'Vector3': {
  25. type: Vector3,
  26. format: (vec: Vector3) => { return `x:${Helpers.Trunc(vec.x)}, y:${Helpers.Trunc(vec.y)}, z:${Helpers.Trunc(vec.z)}` }
  27. },
  28. 'Color3': {
  29. type: Color3,
  30. format: (color: Color3) => { return `R:${color.r.toPrecision(2)}, G:${color.g.toPrecision(2)}, B:${color.b.toPrecision(2)}` },
  31. slider: {
  32. r: { min: 0, max: 1, step: 0.01 },
  33. g: { min: 0, max: 1, step: 0.01 },
  34. b: { min: 0, max: 1, step: 0.01 }
  35. }
  36. },
  37. 'Color4': {
  38. type: Color4,
  39. format: (color: Color4) => { return `R:${color.r}, G:${color.g}, B:${color.b}` },
  40. slider: {
  41. r: { min: 0, max: 1, step: 0.01 },
  42. g: { min: 0, max: 1, step: 0.01 },
  43. b: { min: 0, max: 1, step: 0.01 }
  44. }
  45. },
  46. 'Quaternion': {
  47. type: Quaternion
  48. },
  49. 'Size': {
  50. type: Size,
  51. format: (size: Size) => { return `Size - w:${Helpers.Trunc(size.width)}, h:${Helpers.Trunc(size.height)}` }
  52. },
  53. 'Texture': {
  54. type: Texture,
  55. format: (tex: Texture) => { return tex.name }
  56. },
  57. 'RenderTargetTexture': {
  58. type: RenderTargetTexture
  59. },
  60. 'DynamicTexture': {
  61. type: DynamicTexture
  62. },
  63. 'BaseTexture': {
  64. type: BaseTexture
  65. },
  66. 'CubeTexture': {
  67. type: CubeTexture
  68. },
  69. 'HDRCubeTexture': {
  70. type: HDRCubeTexture
  71. },
  72. 'Sound': {
  73. type: Sound
  74. },
  75. 'ArcRotateCamera': {
  76. type: ArcRotateCamera,
  77. slider: {
  78. alpha: { min: 0, max: 2 * Math.PI, step: 0.01 },
  79. beta: { min: -Math.PI, max: Math.PI, step: 0.01 },
  80. fov: { min: 0, max: 180, step: 1 }
  81. }
  82. },
  83. 'FreeCamera': {
  84. type: FreeCamera,
  85. slider: {
  86. fov: { min: 0, max: 180, step: 1 }
  87. }
  88. },
  89. 'Scene': {
  90. type: Scene,
  91. },
  92. 'TransformNode': {
  93. type: TransformNode,
  94. format: (m: TransformNode): string => { return m.name; }
  95. },
  96. 'AbstractMesh': {
  97. type: AbstractMesh,
  98. format: (m: AbstractMesh): string => { return m.name; }
  99. },
  100. 'Mesh': {
  101. type: Mesh,
  102. format: (m: Mesh): string => { return m.name; },
  103. slider: {
  104. visibility: { min: 0, max: 1, step: 0.1 }
  105. }
  106. },
  107. 'StandardMaterial': {
  108. type: StandardMaterial,
  109. format: (mat: StandardMaterial): string => { return mat.name; },
  110. slider: {
  111. alpha: { min: 0, max: 1, step: 0.01 }
  112. }
  113. },
  114. 'PBRMaterial': {
  115. type: PBRMaterial,
  116. slider: {
  117. alpha: { min: 0, max: 1, step: 0.01 }
  118. }
  119. },
  120. 'PhysicsImpostor': {
  121. type: PhysicsImpostor
  122. },
  123. 'ImageProcessingConfiguration': {
  124. type: ImageProcessingConfiguration
  125. },
  126. 'ColorCurves': {
  127. type: ColorCurves
  128. }
  129. }