    

 ## On this page

  

 

 # rocky\_contact\_data\_recorder\_api

 Last update: 17.07.2025 

<a id="l00001" name="l00001"></a> 1\#pragma once

<a id="l00002" name="l00002"></a> 2 

<a id="l00003" name="l00003"></a> 3\#include &lt;rocky20/model/data\_recorders.h&gt;

<a id="l00004" name="l00004"></a> 4 

<a id="l00005" name="l00005"></a> 5// forward declarations

<a id="l00006" name="l00006"></a> 6class cuda_host;

<a id="l00007" name="l00007"></a> 7typedef cuda_host RockyModel;

<a id="l00008" name="l00008"></a> 8 

<a id="l00017" name="l00017"></a>[ 17](structIRockyContactDataRecorder.xhtml)struct [IRockyContactDataRecorder](structIRockyContactDataRecorder.xhtml)

<a id="l00018" name="l00018"></a> 18{

<a id="l00021" name="l00021"></a> 21 enum RecordingScope

<a id="l00022" name="l00022"></a> 22 {

<a id="l00023" name="l00023"></a> 23 rsParticleParticle,

<a id="l00024" name="l00024"></a> 24 rsParticleTriangle,

<a id="l00025" name="l00025"></a> 25 rsBoth

<a id="l00026" name="l00026"></a> 26 };

<a id="l00027" name="l00027"></a> 27 

<a id="l00028" name="l00028"></a> 28 enum ContactScalar

<a id="l00029" name="l00029"></a> 29 {

<a id="l00030" name="l00030"></a> 30 csDuration = (int)ContactDataRecorder::tDuration,

<a id="l00031" name="l00031"></a> 31 csImpactVelocityNormal = (int)ContactDataRecorder::tNormalImpactVelocity,

<a id="l00032" name="l00032"></a> 32 csImpactVelocityTangential = (int)ContactDataRecorder::tTangentialImpactVelocity,

<a id="l00033" name="l00033"></a> 33 csWorkDissipation = (int)ContactDataRecorder::tDissipationWork,

<a id="l00034" name="l00034"></a> 34 csWorkImpact = (int)ContactDataRecorder::tImpactWork,

<a id="l00035" name="l00035"></a> 35 csWorkShear = (int)ContactDataRecorder::tShearWork,

<a id="l00036" name="l00036"></a> 36 csEnergyTransfer = (int)ContactDataRecorder::tNearWork,

<a id="l00037" name="l00037"></a> 37 csImpulseNormal = (int)ContactDataRecorder::tNormalImpulse,

<a id="l00038" name="l00038"></a> 38 csImpulseTangential = (int)ContactDataRecorder::tTangentialImpulse,

<a id="l00039" name="l00039"></a> 39 csImpulseAdhesion = (int)ContactDataRecorder::tAdhesiveImpulse,

<a id="l00040" name="l00040"></a> 40 csImpulseX = (int)ContactDataRecorder::tImpulseX,

<a id="l00041" name="l00041"></a> 41 csImpulseY = (int)ContactDataRecorder::tImpulseY,

<a id="l00042" name="l00042"></a> 42 csImpulseZ = (int)ContactDataRecorder::tImpulseZ,

<a id="l00043" name="l00043"></a> 43 csSlindingDistance = (int)ContactDataRecorder::tSlidingDistance,

<a id="l00044" name="l00044"></a> 44 

<a id="l00045" name="l00045"></a> 45 csSize

<a id="l00046" name="l00046"></a> 46 };

<a id="l00047" name="l00047"></a> 47 

<a id="l00048" name="l00048"></a> 48 [IRockyContactDataRecorder](structIRockyContactDataRecorder.xhtml)(RockyModel&amp; rocky_model);

<a id="l00049" name="l00049"></a> 49 

<a id="l00050" name="l00050"></a> 50private:

<a id="l00051" name="l00051"></a> 51 

<a id="l00052" name="l00052"></a> 52 RockyModel&amp; rocky_model;

<a id="l00053" name="l00053"></a> 53 

<a id="l00056" name="l00056"></a> 56public:

<a id="l00057" name="l00057"></a> 57 

<a id="l00095" name="l00095"></a> 95 void [enable\_contact\_scalar](structIRockyContactDataRecorder.xhtml#a36e9b7b9de7b99a0e4c6ca703fc7fb5d)(ContactScalar scalar, RecordingScope scope);

<a id="l00096" name="l00096"></a> 96 

<a id="l00108" name="l00108"></a> 108 int [get\_contact\_scalar\_index](structIRockyContactDataRecorder.xhtml#a5ebed1613189e54bf4c202b5ec9553b8)(ContactScalar scalar, RecordingScope scope);

<a id="l00109" name="l00109"></a> 109 

<a id="l00110" name="l00110"></a> 110};



[IRockyContactDataRecorder](structIRockyContactDataRecorder.xhtml)

**Definition** rocky_contact_data_recorder_api.h:18



[IRockyContactDataRecorder::enable\_contact\_scalar](structIRockyContactDataRecorder.xhtml#a36e9b7b9de7b99a0e4c6ca703fc7fb5d)

void enable_contact_scalar(ContactScalar scalar, RecordingScope scope)

**Definition** rocky_contact_data_recorder_api.cpp:9



[IRockyContactDataRecorder::get\_contact\_scalar\_index](structIRockyContactDataRecorder.xhtml#a5ebed1613189e54bf4c202b5ec9553b8)

int get_contact_scalar_index(ContactScalar scalar, RecordingScope scope)

**Definition** rocky_contact_data_recorder_api.cpp:35