AGX Dynamics 2.42.2.1
Loading...
Searching...
No Matches
TerrainToolCollection.h
Go to the documentation of this file.
1/*
2Copyright 2007-2025. Algoryx Simulation AB.
3
4All AGX source code, intellectual property, documentation, sample code,
5tutorials, scene files and technical white papers, are copyrighted, proprietary
6and confidential material of Algoryx Simulation AB. You may not download, read,
7store, distribute, publish, copy or otherwise disseminate, use or expose this
8material unless having a written signed agreement with Algoryx Simulation AB, or having been
9advised so by Algoryx Simulation AB for a time limited evaluation, or having purchased a
10valid commercial license from Algoryx Simulation AB.
11
12Algoryx Simulation AB disclaims all responsibilities for loss or damage caused
13from using this software, unless otherwise stated in written agreements with
14Algoryx Simulation AB.
15*/
16
17#pragma once
18
19#include <agxTerrain/Shovel.h>
24
26
27namespace agxTerrain
28{
29 namespace deprecated
30 {
33
39 {
40 public:
41
42 // --- DEPRECATED --- //
43
50 AGX_DEPRECATED(2.40.0.0)
52
57 AGX_DEPRECATED(2.40.0.0)
58 Terrain* getTerrain() const;
59
64 AGX_DEPRECATED(2.40.0.0)
65 Shovel* getShovel() const;
66
71 AGX_DEPRECATED_FOR(2.40.0.0, Shovel::getActiveZone)
72 PrimaryActiveZone* getActiveZone() const;
73
74
79 AGX_DEPRECATED_FOR(2.40.0.0, Shovel::getSoilParticleAggregate)
80 SoilParticleAggregate* getSoilParticleAggregate() const;
81
82
87 AGX_DEPRECATED_FOR(2.40.0.0, Shovel::getAggregateContactGenerator)
88 AggregateContactGenerator* getAggregateContactGenerator() const;
89
94 AGX_DEPRECATED_FOR(2.40.0.0, Shovel::getDeformController)
95 DeformController* getDeformController() const;
96
97
102 AGX_DEPRECATED_FOR(2.40.0.0, Shovel::getPenetrationResistance)
103 SoilPenetrationResistance* getPenetrationResistance() const;
104
105
110 AGX_DEPRECATED_FOR(2.40.0.0, Shovel::getVoxelCollisionGeometries)
111 const agxCollide::GeometryRefVector& getVoxelCollisionGeometries() const;
112
113
118 AGX_DEPRECATED_FOR(2.40.0.0, Shovel::getParentFrame)
119 agx::Frame* getParentFrame() const;
120
125 AGX_DEPRECATED(2.40.0.0)
126 agx::Bool initialized() const;
127
132 AGX_DEPRECATED(2.40.0.0)
133 agx::Bool shouldUpdate();
134
140 AGX_DEPRECATED_FOR(2.40.0.0, Shovel::setEnableShovelTerrainGeometryContacts)
141 void setEnableShovelTerrainGeometryContacts(bool enable);
142
149 AGX_DEPRECATED_FOR(2.40.0.0, AdvancedShovelSettings::setUseZeroAggregateVelocity)
150 void setZeroAggregateVelocity(bool enable);
151
152
153 /*
154 \deprecated
155 Set whenever custom friction models should be used in the
156 shovel <-> aggregate contacts.
157 \param enable - True if custom friction models should be used. (Default: true)
158 */
159 AGX_DEPRECATED_FOR(2.40.0.0, AdvancedShovelSettings::setUseCustomFrictionModel)
160 void setUseCustomFrictionModel(bool enable);
161
166 AGX_DEPRECATED_FOR(2.40.0.0, AdvancedShovelSettings::getUseCustomFrictionModel)
167 bool getUseCustomFricionModel() const;
168
169
170
175 AGX_DEPRECATED(2.40.0.0)
176 bool shovelEnableHasChanged() const;
177
182 AGX_DEPRECATED(2.40.0.0)
183 void clearActiveZoneWedges() const;
184
189 AGX_DEPRECATED_FOR(2.40.0.0, Shovel::getWedgeAggregate)
190 const agx::RigidBody* getWedgeAggregate(Shovel::ExcavationMode excavationMode) const;
191
196 AGX_DEPRECATED_FOR(2.40.0.0, Shovel::getAggregateTerrainContactDepth)
197 agx::Real getAggregateTerrainContactDepth(Shovel::ExcavationMode excavationMode) const;
198
203 AGX_DEPRECATED_FOR(2.40.0.0, PrimaryActiveZone::updateInnerShape)
204 void recomputeInnerShape();
205
206
208
209 // --- USED FOR RESTORE FROM OLD ARCHIVES --- //
210
215 Terrain* getRestoredTerrain() const;
216
221 Shovel* getRestoredShovel() const;
222
228 ShovelAggregateContactMaterialContainer* getRestoredShovelTerrainContactMaterialContainer();
229
235 bool getRestoredEnable();
236
241 agx::Bool getRestoredSetZeroAggregateVelocity() const;
242
244
246
247 protected:
252
257
258 enum StateFlags : agx::UInt32
259 {
260 ENABLED = 1 << 0,
261 SHOVEL_ENABLED = 1 << 1,
262 SET_ZERO_AGGREGATE_VELOCITY = 1 << 2
263 };
264 using Flags = agx::BitState<StateFlags, agx::UInt32>;
265
266 private:
267 Terrain* m_terrain;
268 ShovelRef m_shovel;
269 ShovelAggregateContactMaterialContainerRef m_shovelAggregateCMContainer;
270 Flags m_flags;
271 };
272 }
273}
#define AGX_DECLARE_POINTER_TYPES(type)
Definition: Referenced.h:254
#define AGXSTREAM_DECLARE_SERIALIZABLE(T)
Use this in a Serializable class to add the required methods Important: Use full namespace in the dec...
Definition: Serializable.h:207
#define AGXTERRAIN_EXPORT
#define AGX_DECLARE_VECTOR_TYPES(type)
Definition: agx/Vector.h:34
This class is an abstract base class for all classes that can be stored and retrieved from an Archive...
Definition: Serializable.h:44
Simple container class for storing and handling explicit contact material for shovel-aggregate contac...
Definition: Shovel.h:1143
Shovel object used to interact with a terrain via an active zone that converts solid terrain to dynam...
Definition: Shovel.h:63
A terrain model based a 3D grid model with overlapping height field that can be deformed by interacti...
Definition: Terrain.h:92
Collection of terrain tool (currently Shovel) related objects which are terrain instance specific.
agx::BitState< StateFlags, agx::UInt32 > Flags
Base class providing referencing counted objects.
Definition: Referenced.h:120
#define AGX_DEPRECATED(since)
Definition: macros.h:81
#define DOXYGEN_END_INTERNAL_BLOCK()
Definition: macros.h:89
#define DOXYGEN_START_INTERNAL_BLOCK()
Definition: macros.h:88
#define AGX_DEPRECATED_FOR(since, replacement)
Definition: macros.h:82
This namespace consists of a set of classes for handling geometric intersection tests including boole...
The agxTerrain namespace contains a 3D model for a dynamic deformable Terrain and related classes.
Definition: Geometry.h:59
The agx namespace contains the dynamics/math part of the AGX Dynamics API.