My Project
MetaBall.h
1 #pragma once
2 #include "ShapeAABB.h"
3 #include "MetaObject.h"
4 
5 namespace ParaEngine
6 {
12  class MetaBall : public MetaObject
13  {
14  public:
15  MetaBall(MetaWorldFragment *wf, const Vector3& position, float radius = 3.0f, bool excavating = true);
16 
18  virtual void updateDataGrid(DataGrid* dataGrid);
20  float getRadius() const {return mRadius; }
22  void setRadius(float radius) {mRadius = radius; }
23  void setExcavating(bool e) {mExcavating = true;}
24  virtual CShapeAABB getAABB() const;
25 
26  protected:
27  // radius of the ball
28  float mRadius;
29 
30  // excavating is means a solid ball, non-excavating means hollow ball(empty space)
31  bool mExcavating;
32  };
33  typedef asset_ptr<MetaBall> MetaBallPtr;
34 }
Abstract class defining the interface for meta objects to be used with MetaObjectDataGrid.
Definition: MetaObject.h:13
float getRadius() const
Returns the radius of the meta ball.
Definition: MetaBall.h:20
virtual CShapeAABB getAABB() const
Checks for overlap with an AABB.
Definition: MetaBall.cpp:90
A MetaWorldFragment is the basic building block of the world.
Definition: MetaWorldFragment.h:17
different physics engine has different winding order.
Definition: EventBinding.h:32
Class providing a 3d grid of data values and methods for accessing and modifying it.
Definition: DataGrid.h:14
Standard 3-dimensional vector.
Definition: ParaVector3.h:16
AABB-related code.
Definition: ShapeAABB.h:11
virtual void updateDataGrid(DataGrid *dataGrid)
Adds this meta ball to the data grid.
Definition: MetaBall.cpp:21
a meta ball is a building block of meta world fragment.
Definition: MetaBall.h:12
void setRadius(float radius)
Sets the radius of the meta ball.
Definition: MetaBall.h:22