SceneGroup.h 1.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  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. ///
  40. bool buildPolyList(PolyListContext context, AbstractPolyList* polyList, const Box3F& box, const SphereF& sphere) override;
  41. bool buildExportPolyList(ColladaUtils::ExportData* exportData, const Box3F& box, const SphereF&) override;
  42. void getUtilizedAssets(Vector<StringTableEntry>* usedAssetsList) override;
  43. };
  44. #endif