Scene.xml 16 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617
  1. <glue>
  2. <head><![CDATA[// Copyright (C) 2009-2020, Panagiotis Christopoulos Charitos and contributors.
  3. // All rights reserved.
  4. // Code licensed under the BSD License.
  5. // http://www.anki3d.org/LICENSE
  6. // WARNING: This file is auto generated.
  7. #include <anki/script/LuaBinder.h>
  8. #include <anki/script/ScriptManager.h>
  9. #include <anki/Scene.h>
  10. namespace anki {
  11. template<typename T, typename... TArgs>
  12. static T* newSceneNode(SceneGraph* scene, CString name, TArgs... args)
  13. {
  14. T* ptr;
  15. Error err = scene->template newSceneNode<T>(name, ptr, std::forward<TArgs>(args)...);
  16. if(!err)
  17. {
  18. return ptr;
  19. }
  20. else
  21. {
  22. return nullptr;
  23. }
  24. }
  25. template<typename T, typename... TArgs>
  26. static T* newEvent(EventManager* eventManager, TArgs... args)
  27. {
  28. T* ptr;
  29. Error err = eventManager->template newEvent<T>(ptr, std::forward<TArgs>(args)...);
  30. if(!err)
  31. {
  32. return ptr;
  33. }
  34. else
  35. {
  36. return nullptr;
  37. }
  38. }
  39. static SceneGraph* getSceneGraph(lua_State* l)
  40. {
  41. LuaBinder* binder = nullptr;
  42. lua_getallocf(l, reinterpret_cast<void**>(&binder));
  43. SceneGraph* scene = binder->getOtherSystems().m_sceneGraph;
  44. ANKI_ASSERT(scene);
  45. return scene;
  46. }
  47. static EventManager* getEventManager(lua_State* l)
  48. {
  49. return &getSceneGraph(l)->getEventManager();
  50. }
  51. using WeakArraySceneNodePtr = WeakArray<SceneNode*>;
  52. ]]></head>
  53. <classes>
  54. <!-- Other -->
  55. <class name="WeakArraySceneNodePtr">
  56. <methods>
  57. <method name="getSize">
  58. <return>U32</return>
  59. </method>
  60. <method name="getAt">
  61. <overrideCall><![CDATA[SceneNode* ret = (*self)[arg0];]]></overrideCall>
  62. <args><arg>U32</arg></args>
  63. <return>SceneNode*</return>
  64. </method>
  65. </methods>
  66. </class>
  67. <!-- Components -->
  68. <class name="MoveComponent">
  69. <methods>
  70. <method name="setLocalOrigin">
  71. <args>
  72. <arg>const Vec4&amp;</arg>
  73. </args>
  74. </method>
  75. <method name="getLocalOrigin">
  76. <return>const Vec4&amp;</return>
  77. </method>
  78. <method name="setLocalRotation">
  79. <args>
  80. <arg>const Mat3x4&amp;</arg>
  81. </args>
  82. </method>
  83. <method name="getLocalRotation">
  84. <return>const Mat3x4&amp;</return>
  85. </method>
  86. <method name="setLocalScale">
  87. <args>
  88. <arg>F32</arg>
  89. </args>
  90. </method>
  91. <method name="getLocalScale">
  92. <return>F32</return>
  93. </method>
  94. <method name="setLocalTransform">
  95. <args>
  96. <arg>const Transform&amp;</arg>
  97. </args>
  98. </method>
  99. <method name="getLocalTransform">
  100. <return>const Transform&amp;</return>
  101. </method>
  102. </methods>
  103. </class>
  104. <class name="LightComponent">
  105. <methods>
  106. <method name="setDiffuseColor">
  107. <args>
  108. <arg>const Vec4&amp;</arg>
  109. </args>
  110. </method>
  111. <method name="getDiffuseColor">
  112. <return>const Vec4&amp;</return>
  113. </method>
  114. <method name="setRadius">
  115. <args>
  116. <arg>F32</arg>
  117. </args>
  118. </method>
  119. <method name="getRadius">
  120. <return>F32</return>
  121. </method>
  122. <method name="setDistance">
  123. <args>
  124. <arg>F32</arg>
  125. </args>
  126. </method>
  127. <method name="getDistance">
  128. <return>F32</return>
  129. </method>
  130. <method name="setInnerAngle">
  131. <args>
  132. <arg>F32</arg>
  133. </args>
  134. </method>
  135. <method name="getInnerAngle">
  136. <return>F32</return>
  137. </method>
  138. <method name="setOuterAngle">
  139. <args>
  140. <arg>F32</arg>
  141. </args>
  142. </method>
  143. <method name="getOuterAngle">
  144. <return>F32</return>
  145. </method>
  146. <method name="setShadowEnabled">
  147. <args>
  148. <arg>Bool</arg>
  149. </args>
  150. </method>
  151. <method name="getShadowEnabled">
  152. <return>Bool</return>
  153. </method>
  154. </methods>
  155. </class>
  156. <class name="DecalComponent">
  157. <methods>
  158. <method name="setDiffuseDecal">
  159. <args>
  160. <arg>CString</arg>
  161. <arg>CString</arg>
  162. <arg>F32</arg>
  163. </args>
  164. <return>Error</return>
  165. </method>
  166. <method name="setSpecularRoughnessDecal">
  167. <args>
  168. <arg>CString</arg>
  169. <arg>CString</arg>
  170. <arg>F32</arg>
  171. </args>
  172. <return>Error</return>
  173. </method>
  174. <method name="updateShape">
  175. <args>
  176. <arg>F32</arg>
  177. <arg>F32</arg>
  178. <arg>F32</arg>
  179. </args>
  180. </method>
  181. </methods>
  182. </class>
  183. <class name="LensFlareComponent">
  184. <methods>
  185. <method name="setFirstFlareSize">
  186. <args>
  187. <arg>const Vec2&amp;</arg>
  188. </args>
  189. </method>
  190. <method name="setColorMultiplier">
  191. <args>
  192. <arg>const Vec4&amp;</arg>
  193. </args>
  194. </method>
  195. </methods>
  196. </class>
  197. <class name="TriggerComponent">
  198. <methods>
  199. <method name="getContactSceneNodes">
  200. <return>WeakArraySceneNodePtr</return>
  201. </method>
  202. </methods>
  203. </class>
  204. <class name="FogDensityComponent">
  205. <methods>
  206. <method name="setAabb">
  207. <args>
  208. <arg>const Vec4&amp;</arg>
  209. <arg>const Vec4&amp;</arg>
  210. </args>
  211. </method>
  212. <method name="setSphere">
  213. <args>
  214. <arg>F32</arg>
  215. </args>
  216. </method>
  217. <method name="setDensity">
  218. <args>
  219. <arg>F32</arg>
  220. </args>
  221. </method>
  222. <method name="getDensity">
  223. <return>F32</return>
  224. </method>
  225. </methods>
  226. </class>
  227. <class name="FrustumComponent">
  228. <methods>
  229. <method name="setPerspective">
  230. <args>
  231. <arg>F32</arg>
  232. <arg>F32</arg>
  233. <arg>F32</arg>
  234. <arg>F32</arg>
  235. </args>
  236. </method>
  237. <method name="setShadowCascadesDistancePower">
  238. <args>
  239. <arg>F32</arg>
  240. </args>
  241. </method>
  242. <method name="setEffectiveShadowDistance">
  243. <args>
  244. <arg>F32</arg>
  245. </args>
  246. </method>
  247. </methods>
  248. </class>
  249. <class name="GlobalIlluminationProbeComponent">
  250. <methods>
  251. <method name="setBoundingBox">
  252. <args>
  253. <arg>const Vec4&amp;</arg>
  254. <arg>const Vec4&amp;</arg>
  255. </args>
  256. </method>
  257. <method name="getAlignedBoundingBoxMin">
  258. <return>Vec4</return>
  259. </method>
  260. <method name="getAlignedBoundingBoxMax">
  261. <return>Vec4</return>
  262. </method>
  263. <method name="setCellSize">
  264. <args>
  265. <arg>F32</arg>
  266. </args>
  267. </method>
  268. <method name="getCellSize">
  269. <return>F32</return>
  270. </method>
  271. <method name="setFadeDistance">
  272. <args>
  273. <arg>F32</arg>
  274. </args>
  275. </method>
  276. <method name="getFadeDistance">
  277. <return>F32</return>
  278. </method>
  279. </methods>
  280. </class>
  281. <!-- Nodes -->
  282. <class name="SceneNode">
  283. <methods>
  284. <method name="getName">
  285. <return>CString</return>
  286. </method>
  287. <method name="addChild">
  288. <args>
  289. <arg>SceneNode*</arg>
  290. </args>
  291. </method>
  292. <method name="setMarkedForDeletion"></method>
  293. <method name="tryGetComponent&lt;MoveComponent&gt;" alias="getMoveComponent">
  294. <return>MoveComponent*</return>
  295. </method>
  296. <method name="tryGetComponent&lt;LightComponent&gt;" alias="getLightComponent">
  297. <return>LightComponent*</return>
  298. </method>
  299. <method name="tryGetComponent&lt;LensFlareComponent&gt;" alias="getLensFlareComponent">
  300. <return>LensFlareComponent*</return>
  301. </method>
  302. <method name="tryGetComponent&lt;DecalComponent&gt;" alias="getDecalComponent">
  303. <return>DecalComponent*</return>
  304. </method>
  305. <method name="tryGetComponent&lt;TriggerComponent&gt;" alias="getTriggerComponent">
  306. <return>TriggerComponent*</return>
  307. </method>
  308. <method name="tryGetComponent&lt;FogDensityComponent&gt;" alias="getFogDensityComponent">
  309. <return>FogDensityComponent*</return>
  310. </method>
  311. <method name="tryGetComponent&lt;FrustumComponent&gt;" alias="getFrustumComponent">
  312. <return>FrustumComponent*</return>
  313. </method>
  314. <method name="tryGetComponent&lt;GlobalIlluminationProbeComponent&gt;" alias="getGlobalIlluminationProbeComponent">
  315. <return>GlobalIlluminationProbeComponent*</return>
  316. </method>
  317. </methods>
  318. </class>
  319. <class name="ModelNode">
  320. <methods>
  321. <method name="getSceneNodeBase">
  322. <overrideCall>SceneNode&amp; ret = *self;</overrideCall>
  323. <return>SceneNode&amp;</return>
  324. </method>
  325. </methods>
  326. </class>
  327. <class name="PerspectiveCameraNode">
  328. <methods>
  329. <method name="getSceneNodeBase">
  330. <overrideCall>SceneNode&amp; ret = *self;</overrideCall>
  331. <return>SceneNode&amp;</return>
  332. </method>
  333. </methods>
  334. </class>
  335. <class name="PointLightNode">
  336. <methods>
  337. <method name="getSceneNodeBase">
  338. <overrideCall>SceneNode&amp; ret = *self;</overrideCall>
  339. <return>SceneNode&amp;</return>
  340. </method>
  341. <method name="loadLensFlare">
  342. <args>
  343. <arg>const CString&amp;</arg>
  344. </args>
  345. <return>Error</return>
  346. </method>
  347. </methods>
  348. </class>
  349. <class name="SpotLightNode">
  350. <methods>
  351. <method name="getSceneNodeBase">
  352. <overrideCall>SceneNode&amp; ret = *self;</overrideCall>
  353. <return>SceneNode&amp;</return>
  354. </method>
  355. </methods>
  356. </class>
  357. <class name="DirectionalLightNode">
  358. <methods>
  359. <method name="getSceneNodeBase">
  360. <overrideCall>SceneNode&amp; ret = *self;</overrideCall>
  361. <return>SceneNode&amp;</return>
  362. </method>
  363. </methods>
  364. </class>
  365. <class name="StaticCollisionNode">
  366. <methods>
  367. <method name="getSceneNodeBase">
  368. <overrideCall>SceneNode&amp; ret = *self;</overrideCall>
  369. <return>SceneNode&amp;</return>
  370. </method>
  371. </methods>
  372. </class>
  373. <class name="ParticleEmitterNode">
  374. <methods>
  375. <method name="getSceneNodeBase">
  376. <overrideCall>SceneNode&amp; ret = *self;</overrideCall>
  377. <return>SceneNode&amp;</return>
  378. </method>
  379. </methods>
  380. </class>
  381. <class name="GpuParticleEmitterNode">
  382. <methods>
  383. <method name="getSceneNodeBase">
  384. <overrideCall>SceneNode&amp; ret = *self;</overrideCall>
  385. <return>SceneNode&amp;</return>
  386. </method>
  387. </methods>
  388. </class>
  389. <class name="ReflectionProbeNode">
  390. <methods>
  391. <method name="getSceneNodeBase">
  392. <overrideCall>SceneNode&amp; ret = *self;</overrideCall>
  393. <return>SceneNode&amp;</return>
  394. </method>
  395. </methods>
  396. </class>
  397. <class name="OccluderNode">
  398. <methods>
  399. <method name="getSceneNodeBase">
  400. <overrideCall>SceneNode&amp; ret = *self;</overrideCall>
  401. <return>SceneNode&amp;</return>
  402. </method>
  403. </methods>
  404. </class>
  405. <class name="DecalNode">
  406. <methods>
  407. <method name="getSceneNodeBase">
  408. <overrideCall>SceneNode&amp; ret = *self;</overrideCall>
  409. <return>SceneNode&amp;</return>
  410. </method>
  411. </methods>
  412. </class>
  413. <class name="TriggerNode">
  414. <methods>
  415. <method name="getSceneNodeBase">
  416. <overrideCall>SceneNode&amp; ret = *self;</overrideCall>
  417. <return>SceneNode&amp;</return>
  418. </method>
  419. </methods>
  420. </class>
  421. <class name="FogDensityNode">
  422. <methods>
  423. <method name="getSceneNodeBase">
  424. <overrideCall>SceneNode&amp; ret = *self;</overrideCall>
  425. <return>SceneNode&amp;</return>
  426. </method>
  427. </methods>
  428. </class>
  429. <class name="GlobalIlluminationProbeNode">
  430. <methods>
  431. <method name="getSceneNodeBase">
  432. <overrideCall>SceneNode&amp; ret = *self;</overrideCall>
  433. <return>SceneNode&amp;</return>
  434. </method>
  435. </methods>
  436. </class>
  437. <class name="SceneGraph">
  438. <methods>
  439. <method name="newPerspectiveCameraNode">
  440. <overrideCall><![CDATA[PerspectiveCameraNode* ret = newSceneNode<PerspectiveCameraNode>(self, arg0);]]></overrideCall>
  441. <args>
  442. <arg>const CString&amp;</arg>
  443. </args>
  444. <return>PerspectiveCameraNode*</return>
  445. </method>
  446. <method name="newModelNode">
  447. <overrideCall><![CDATA[ModelNode* ret = newSceneNode<ModelNode>(self, arg0, arg1);]]></overrideCall>
  448. <args>
  449. <arg>const CString&amp;</arg>
  450. <arg>const CString&amp;</arg>
  451. </args>
  452. <return>ModelNode*</return>
  453. </method>
  454. <method name="newPointLightNode">
  455. <overrideCall><![CDATA[PointLightNode* ret = newSceneNode<PointLightNode>(self, arg0);]]></overrideCall>
  456. <args>
  457. <arg>const CString&amp;</arg>
  458. </args>
  459. <return>PointLightNode*</return>
  460. </method>
  461. <method name="newSpotLightNode">
  462. <overrideCall><![CDATA[SpotLightNode* ret = newSceneNode<SpotLightNode>(self, arg0);]]></overrideCall>
  463. <args>
  464. <arg>const CString&amp;</arg>
  465. </args>
  466. <return>SpotLightNode*</return>
  467. </method>
  468. <method name="newDirectionalLightNode">
  469. <overrideCall><![CDATA[DirectionalLightNode* ret = newSceneNode<DirectionalLightNode>(self, arg0);]]></overrideCall>
  470. <args>
  471. <arg>const CString&amp;</arg>
  472. </args>
  473. <return>DirectionalLightNode*</return>
  474. </method>
  475. <method name="newStaticCollisionNode">
  476. <overrideCall><![CDATA[StaticCollisionNode* ret = newSceneNode<StaticCollisionNode>(self, arg0, arg1, arg2);]]></overrideCall>
  477. <args>
  478. <arg>const CString&amp;</arg>
  479. <arg>const CString&amp;</arg>
  480. <arg>const Transform&amp;</arg>
  481. </args>
  482. <return>StaticCollisionNode*</return>
  483. </method>
  484. <method name="newParticleEmitterNode">
  485. <overrideCall><![CDATA[ParticleEmitterNode* ret = newSceneNode<ParticleEmitterNode>(self, arg0, arg1);]]></overrideCall>
  486. <args>
  487. <arg>const CString&amp;</arg>
  488. <arg>const CString&amp;</arg>
  489. </args>
  490. <return>ParticleEmitterNode*</return>
  491. </method>
  492. <method name="newGpuParticleEmitterNode">
  493. <overrideCall><![CDATA[GpuParticleEmitterNode* ret = newSceneNode<GpuParticleEmitterNode>(self, arg0, arg1);]]></overrideCall>
  494. <args>
  495. <arg>const CString&amp;</arg>
  496. <arg>const CString&amp;</arg>
  497. </args>
  498. <return>GpuParticleEmitterNode*</return>
  499. </method>
  500. <method name="newReflectionProbeNode">
  501. <overrideCall><![CDATA[ReflectionProbeNode* ret = newSceneNode<ReflectionProbeNode>(self, arg0, arg1, arg2);]]></overrideCall>
  502. <args>
  503. <arg>const CString&amp;</arg>
  504. <arg>const Vec4&amp;</arg>
  505. <arg>const Vec4&amp;</arg>
  506. </args>
  507. <return>ReflectionProbeNode*</return>
  508. </method>
  509. <method name="newOccluderNode">
  510. <overrideCall><![CDATA[OccluderNode* ret = newSceneNode<OccluderNode>(self, arg0, arg1);]]></overrideCall>
  511. <args>
  512. <arg>const CString&amp;</arg>
  513. <arg>const CString&amp;</arg>
  514. </args>
  515. <return>OccluderNode*</return>
  516. </method>
  517. <method name="newDecalNode">
  518. <overrideCall><![CDATA[DecalNode* ret = newSceneNode<DecalNode>(self, arg0);]]></overrideCall>
  519. <args>
  520. <arg>const CString&amp;</arg>
  521. </args>
  522. <return>DecalNode*</return>
  523. </method>
  524. <method name="newTriggerNode">
  525. <overrideCall><![CDATA[TriggerNode* ret = newSceneNode<TriggerNode>(self, arg0, arg1);]]></overrideCall>
  526. <args>
  527. <arg>const CString&amp;</arg>
  528. <arg>F32</arg>
  529. </args>
  530. <return>TriggerNode*</return>
  531. </method>
  532. <method name="newGlobalIlluminationProbeNode">
  533. <overrideCall><![CDATA[GlobalIlluminationProbeNode* ret = newSceneNode<GlobalIlluminationProbeNode>(self, arg0);]]></overrideCall>
  534. <args>
  535. <arg>const CString&amp;</arg>
  536. </args>
  537. <return>GlobalIlluminationProbeNode*</return>
  538. </method>
  539. <method name="setActiveCameraNode">
  540. <args>
  541. <arg>SceneNode*</arg>
  542. </args>
  543. </method>
  544. </methods>
  545. </class>
  546. <!-- Events -->
  547. <class name="Event">
  548. <methods>
  549. <method name="getAssociatedSceneNodes">
  550. <return>WeakArraySceneNodePtr</return>
  551. </method>
  552. </methods>
  553. </class>
  554. <class name="LightEvent">
  555. <methods>
  556. <method name="setIntensityMultiplier">
  557. <args><arg>const Vec4&amp;</arg></args>
  558. </method>
  559. <method name="setFrequency">
  560. <args>
  561. <arg>F32</arg>
  562. <arg>F32</arg>
  563. </args>
  564. </method>
  565. </methods>
  566. </class>
  567. <class name="EventManager">
  568. <methods>
  569. <method name="newLightEvent">
  570. <overrideCall><![CDATA[LightEvent* ret = newEvent<LightEvent>(self, arg0, arg1, arg2);]]></overrideCall>
  571. <args>
  572. <arg>F32</arg>
  573. <arg>F32</arg>
  574. <arg>SceneNode*</arg>
  575. </args>
  576. <return>LightEvent*</return>
  577. </method>
  578. </methods>
  579. </class>
  580. </classes>
  581. <functions>
  582. <function name="getSceneGraph">
  583. <overrideCall>SceneGraph* ret = getSceneGraph(l);</overrideCall>
  584. <return>SceneGraph*</return>
  585. </function>
  586. </functions>
  587. <functions>
  588. <function name="getEventManager">
  589. <overrideCall>EventManager* ret = getEventManager(l);</overrideCall>
  590. <return>EventManager*</return>
  591. </function>
  592. </functions>
  593. <tail><![CDATA[} // end namespace anki]]></tail>
  594. </glue>