30 class TerrainDataAtlas;
36 typedef
std::pair<
agx::Vec3iVector,
agx::UInt32Vector> TerrainMaterialsInVoxels;
37 typedef
agx::HashTable<TerrainMaterial*,
agx::Vec3iVector> TerrainMaterialSort;
61 TerrainMaterialController(Terrain* terrain);
66 TerrainMaterialController();
71 void setDefaultTerrainMaterial(TerrainMaterial* defaultTerrainMaterial,
agx::Material* defaultMaterial =
nullptr);
75 TerrainMaterial* getDefaultTerrainMaterial();
99 bool addTerrainMaterial(TerrainMaterial* terrainMaterial,
const Grid::GridCoord& coord);
107 bool addTerrainMaterial(TerrainMaterial* terrainMaterial);
115 bool associateMaterialToTerrainMaterial(
agx::Material* material, TerrainMaterial* terrainMaterial);
120 TerrainMaterial* getTerrainMaterial(
const Grid::GridCoord& coord)
const;
125 TerrainMaterial* getTerrainMaterial(
const agx::Vec3 worldPosition);
136 agx::UInt32 getTerrainMaterialIndex(TerrainMaterial* terrainMaterial);
151 bool exchangeTerrainMaterial(TerrainMaterial* oldTerrainMaterial, TerrainMaterial* newTerrainMaterial);
157 bool removeTerrainMaterial(TerrainMaterial* terrainMaterialToRemove);
164 void clearTerrainMaterialGrid(
bool clearAddedMaterials);
170 agx::Material* getMaterial(TerrainMaterial* terrainMaterial)
const;
189 void debugRenderMaterials();
194 TerrainMaterialsInVoxels getTerrainMaterialsInVoxels();
201 void syncTerrainWithTerrainMaterials();
205 MaterialPairVector getTerrainMaterialPairs();
206 void setTerrainMaterialPairs(MaterialPairVector materialPairs);
213 void pagerSetTerrainMaterialsInVoxels(TerrainMaterialsInVoxels terrainMaterialsInVoxels,
bool resetTerrainMaterials);
221 void pagerSetTerrainMaterialInVoxels(
agx::Vec3iVector voxelIndices,
agx::UInt32 terrainMaterialIndex,
bool resetTerrainMaterials =
true);
246 agx::RealVector getMaterialWeightsInFailureZone(ActiveZone* activeZone);
446 virtual ~TerrainMaterialController();
448 TerrainDataAtlas* getData()
const;
#define AGX_DECLARE_POINTER_TYPES(type)
#define AGXTERRAIN_STORE_RESTORE_INTERFACE
#define AGXTERRAIN_EXPORT
#define AGX_DECLARE_VECTOR_TYPES(type)
The geometry representation used by the collision detection engine.
Utility color class with "common colors".
agx::VectorPOD< GridCoord > GridCoordVector
Main material class which acts as a holder of a Surface Material and a Bulk material.
Vector containing 'raw' data.
#define DOXYGEN_END_INTERNAL_BLOCK()
#define DOXYGEN_START_INTERNAL_BLOCK()
The agxTerrain namespace contains a 3D model for a dynamic deformable Terrain and related classes.
The agx namespace contains the dynamics/math part of the AGX Dynamics API.