SceneGroup.h 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. #pragma once
  2. #ifndef SCENE_GROUP_H
  3. #define SCENE_GROUP_H
  4. #ifndef _SCENEOBJECT_H_
  5. #include "scene/sceneObject.h"
  6. #endif
  7. class SceneGroup : public SceneObject
  8. {
  9. typedef SceneObject Parent;
  10. public:
  11. enum MaskBits
  12. {
  13. TransformMask = Parent::NextFreeMask << 0,
  14. NextFreeMask = Parent::NextFreeMask << 1
  15. };
  16. public:
  17. SceneGroup();
  18. virtual ~SceneGroup();
  19. DECLARE_CONOBJECT(SceneGroup);
  20. DECLARE_CATEGORY("Object \t Collection");
  21. static void initPersistFields();
  22. // SimObject
  23. bool onAdd() override;
  24. void onRemove() override;
  25. void onEditorEnable() override;
  26. void onEditorDisable() override;
  27. void inspectPostApply() override;
  28. void onInspect(GuiInspector* inspector) override;
  29. // NetObject
  30. U32 packUpdate(NetConnection* conn, U32 mask, BitStream* stream) override;
  31. void unpackUpdate(NetConnection* conn, BitStream* stream) override;
  32. // SceneObject
  33. void setTransform(const MatrixF& mat) override;
  34. void setRenderTransform(const MatrixF& mat) override;
  35. // Object management
  36. void addObject(SimObject* object) override;
  37. void removeObject(SimObject* object) override;
  38. void recalculateBoundingBox();
  39. void reparentOOBObjects();
  40. ///
  41. bool buildPolyList(PolyListContext context, AbstractPolyList* polyList, const Box3F& box, const SphereF& sphere) override { return false; };
  42. bool buildExportPolyList(ColladaUtils::ExportData* exportData, const Box3F& box, const SphereF&) override { return false; };
  43. void getUtilizedAssets(Vector<StringTableEntry>* usedAssetsList) override;
  44. };
  45. #endif