    

 ## On this page

  

 

 # rocky\_contact\_output\_data\_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/contact\_data.h&gt;

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

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

<a id="l00006" name="l00006"></a> 6// =================================================================================================

<a id="l00007" name="l00007"></a> 7// IRockyContactOutputData

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

<a id="l00009" name="l00009"></a> 9 

<a id="l00036" name="l00036"></a>[ 36](structIRockyContactOutputData.xhtml)struct [IRockyContactOutputData](structIRockyContactOutputData.xhtml)

<a id="l00037" name="l00037"></a> 37{

<a id="l00038" name="l00038"></a> 38 // Setters -------------------------------------------------------------------------------------

<a id="l00039" name="l00039"></a> 39 

<a id="l00051" name="l00051"></a> 51 ROCKY_FUNCTIONS void [set\_normal\_force](structIRockyContactOutputData.xhtml#a396b63164b3e2d7792bca3c7ba1ae274)(double value);

<a id="l00052" name="l00052"></a> 52 

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

<a id="l00065" name="l00065"></a> 65 ROCKY_FUNCTIONS void [set\_tangential\_force](structIRockyContactOutputData.xhtml#abaf1043a614caad9555e2c909eb21e12)(double3 value);

<a id="l00066" name="l00066"></a> 66 

<a id="l00082" name="l00082"></a> 82 ROCKY_FUNCTIONS void [set\_home\_impact\_energy](structIRockyContactOutputData.xhtml#a6fa45c11ca5a3dc0e2e7ba76cceca590)(double value);

<a id="l00083" name="l00083"></a> 83 

<a id="l00084" name="l00084"></a> 84 

<a id="l00100" name="l00100"></a> 100 ROCKY_FUNCTIONS void [set\_near\_impact\_energy](structIRockyContactOutputData.xhtml#afaf9777156ccff17bad6b754bd9ec0e2)(double value);

<a id="l00101" name="l00101"></a> 101 

<a id="l00102" name="l00102"></a> 102 

<a id="l00117" name="l00117"></a> 117 ROCKY_FUNCTIONS void [set\_sliding](structIRockyContactOutputData.xhtml#ae0f380ec4f65945e54d4e3b939116979)(bool value);

<a id="l00118" name="l00118"></a> 118 

<a id="l00119" name="l00119"></a> 119 

<a id="l00130" name="l00130"></a> 130 ROCKY_FUNCTIONS void [set\_home\_moment](structIRockyContactOutputData.xhtml#a4016d11738ce592f4e0b2853c552db13)(double3 value);

<a id="l00131" name="l00131"></a> 131 

<a id="l00132" name="l00132"></a> 132 

<a id="l00144" name="l00144"></a> 144 ROCKY_FUNCTIONS void [set\_near\_moment](structIRockyContactOutputData.xhtml#a7eea9b368237f35e06d1e3381fef9a13)(double3 value);

<a id="l00145" name="l00145"></a> 145 

<a id="l00146" name="l00146"></a> 146 

<a id="l00158" name="l00158"></a> 158 ROCKY_FUNCTIONS void [set\_rolling\_dissipated\_power](structIRockyContactOutputData.xhtml#ad957c62e9c6bb92c8e13ef28ea8e0a3d)(double value);

<a id="l00159" name="l00159"></a> 159 

<a id="l00160" name="l00160"></a> 160 // Getters -------------------------------------------------------------------------------------

<a id="l00161" name="l00161"></a> 161 

<a id="l00177" name="l00177"></a> 177 ROCKY_FUNCTIONS double [get\_normal\_force](structIRockyContactOutputData.xhtml#adfb7782976874a10981521e52742a015)();

<a id="l00178" name="l00178"></a> 178 

<a id="l00179" name="l00179"></a> 179 

<a id="l00196" name="l00196"></a> 196 ROCKY_FUNCTIONS double3 [get\_tangential\_force](structIRockyContactOutputData.xhtml#a25aeef724bbfb9eb24d8297df024f208)();

<a id="l00197" name="l00197"></a> 197 

<a id="l00198" name="l00198"></a> 198 

<a id="l00205" name="l00205"></a> 205 ROCKY_FUNCTIONS double [get\_normal\_relative\_velocity](structIRockyContactOutputData.xhtml#adb3a62ea0f7da835ebeec3ec48d72214)();

<a id="l00206" name="l00206"></a> 206 

<a id="l00213" name="l00213"></a> 213 ROCKY_FUNCTIONS double3 [get\_tangential\_relative\_velocity](structIRockyContactOutputData.xhtml#aff6677ca9cfa1f58ae87e308d7b19286)();

<a id="l00214" name="l00214"></a> 214 

<a id="l00215" name="l00215"></a> 215 

<a id="l00216" name="l00216"></a> 216 

<a id="l00219" name="l00219"></a> 219 bool _sliding{false};

<a id="l00220" name="l00220"></a> 220 bool _is_rr_power_set{ false };

<a id="l00221" name="l00221"></a> 221 contact_output_data _output{};

<a id="l00222" name="l00222"></a> 222 

<a id="l00224" name="l00224"></a> 224};



<a id="l00225" name="l00225"></a> 225 

<a id="l00226" name="l00226"></a> 226// Setters -------------------------------------------------------------------------------------

<a id="l00227" name="l00227"></a>[ 227](structIRockyContactOutputData.xhtml#a396b63164b3e2d7792bca3c7ba1ae274)inline ROCKY_FUNCTIONS void [IRockyContactOutputData::set\_normal\_force](structIRockyContactOutputData.xhtml#a396b63164b3e2d7792bca3c7ba1ae274)(double value) 

<a id="l00228" name="l00228"></a> 228{

<a id="l00229" name="l00229"></a> 229 this-&gt;_output.normal_force = value;

<a id="l00230" name="l00230"></a> 230}



<a id="l00231" name="l00231"></a> 231 

<a id="l00232" name="l00232"></a>[ 232](structIRockyContactOutputData.xhtml#abaf1043a614caad9555e2c909eb21e12)inline ROCKY_FUNCTIONS void [IRockyContactOutputData::set\_tangential\_force](structIRockyContactOutputData.xhtml#abaf1043a614caad9555e2c909eb21e12)(double3 value)

<a id="l00233" name="l00233"></a> 233{

<a id="l00234" name="l00234"></a> 234 this-&gt;_output.tangential_force = value;

<a id="l00235" name="l00235"></a> 235}



<a id="l00236" name="l00236"></a> 236 

<a id="l00237" name="l00237"></a>[ 237](structIRockyContactOutputData.xhtml#a6fa45c11ca5a3dc0e2e7ba76cceca590)inline ROCKY_FUNCTIONS void [IRockyContactOutputData::set\_home\_impact\_energy](structIRockyContactOutputData.xhtml#a6fa45c11ca5a3dc0e2e7ba76cceca590)(double value)

<a id="l00238" name="l00238"></a> 238{

<a id="l00239" name="l00239"></a> 239 this-&gt;_output.home_normal_energy = value;

<a id="l00240" name="l00240"></a> 240}



<a id="l00241" name="l00241"></a> 241 

<a id="l00242" name="l00242"></a>[ 242](structIRockyContactOutputData.xhtml#afaf9777156ccff17bad6b754bd9ec0e2)inline ROCKY_FUNCTIONS void [IRockyContactOutputData::set\_near\_impact\_energy](structIRockyContactOutputData.xhtml#afaf9777156ccff17bad6b754bd9ec0e2)(double value)

<a id="l00243" name="l00243"></a> 243{

<a id="l00244" name="l00244"></a> 244 this-&gt;_output.near_normal_energy = value;

<a id="l00245" name="l00245"></a> 245}



<a id="l00246" name="l00246"></a> 246 

<a id="l00247" name="l00247"></a>[ 247](structIRockyContactOutputData.xhtml#ae0f380ec4f65945e54d4e3b939116979)inline ROCKY_FUNCTIONS void [IRockyContactOutputData::set\_sliding](structIRockyContactOutputData.xhtml#ae0f380ec4f65945e54d4e3b939116979)(bool value)

<a id="l00248" name="l00248"></a> 248{

<a id="l00249" name="l00249"></a> 249 this-&gt;_sliding = value;

<a id="l00250" name="l00250"></a> 250}



<a id="l00251" name="l00251"></a> 251 

<a id="l00252" name="l00252"></a>[ 252](structIRockyContactOutputData.xhtml#a4016d11738ce592f4e0b2853c552db13)inline ROCKY_FUNCTIONS void [IRockyContactOutputData::set\_home\_moment](structIRockyContactOutputData.xhtml#a4016d11738ce592f4e0b2853c552db13)(double3 value)

<a id="l00253" name="l00253"></a> 253{

<a id="l00254" name="l00254"></a> 254 this-&gt;_output.home_moment = value;

<a id="l00255" name="l00255"></a> 255}



<a id="l00256" name="l00256"></a> 256 

<a id="l00257" name="l00257"></a>[ 257](structIRockyContactOutputData.xhtml#a7eea9b368237f35e06d1e3381fef9a13)inline ROCKY_FUNCTIONS void [IRockyContactOutputData::set\_near\_moment](structIRockyContactOutputData.xhtml#a7eea9b368237f35e06d1e3381fef9a13)(double3 value)

<a id="l00258" name="l00258"></a> 258{

<a id="l00259" name="l00259"></a> 259 this-&gt;_output.near_moment = value;

<a id="l00260" name="l00260"></a> 260}



<a id="l00261" name="l00261"></a> 261 

<a id="l00262" name="l00262"></a>[ 262](structIRockyContactOutputData.xhtml#ad957c62e9c6bb92c8e13ef28ea8e0a3d)inline ROCKY_FUNCTIONS void [IRockyContactOutputData::set\_rolling\_dissipated\_power](structIRockyContactOutputData.xhtml#ad957c62e9c6bb92c8e13ef28ea8e0a3d)(double value)

<a id="l00263" name="l00263"></a> 263{

<a id="l00264" name="l00264"></a> 264 this-&gt;_is_rr_power_set = true;

<a id="l00265" name="l00265"></a> 265 this-&gt;_output.rr_power = value;

<a id="l00266" name="l00266"></a> 266}



<a id="l00267" name="l00267"></a> 267 

<a id="l00268" name="l00268"></a> 268// Getters -------------------------------------------------------------------------------------

<a id="l00269" name="l00269"></a>[ 269](structIRockyContactOutputData.xhtml#adfb7782976874a10981521e52742a015)inline ROCKY_FUNCTIONS double [IRockyContactOutputData::get\_normal\_force](structIRockyContactOutputData.xhtml#adfb7782976874a10981521e52742a015)()

<a id="l00270" name="l00270"></a> 270{

<a id="l00271" name="l00271"></a> 271 return this-&gt;_output.normal_force;

<a id="l00272" name="l00272"></a> 272}



<a id="l00273" name="l00273"></a> 273 

<a id="l00274" name="l00274"></a>[ 274](structIRockyContactOutputData.xhtml#a25aeef724bbfb9eb24d8297df024f208)inline ROCKY_FUNCTIONS double3 [IRockyContactOutputData::get\_tangential\_force](structIRockyContactOutputData.xhtml#a25aeef724bbfb9eb24d8297df024f208)()

<a id="l00275" name="l00275"></a> 275{

<a id="l00276" name="l00276"></a> 276 return this-&gt;_output.tangential_force;

<a id="l00277" name="l00277"></a> 277}



<a id="l00278" name="l00278"></a> 278 

<a id="l00279" name="l00279"></a>[ 279](structIRockyContactOutputData.xhtml#adb3a62ea0f7da835ebeec3ec48d72214)inline ROCKY_FUNCTIONS double [IRockyContactOutputData::get\_normal\_relative\_velocity](structIRockyContactOutputData.xhtml#adb3a62ea0f7da835ebeec3ec48d72214)()

<a id="l00280" name="l00280"></a> 280{

<a id="l00281" name="l00281"></a> 281 return this-&gt;_output.normal_velocity;

<a id="l00282" name="l00282"></a> 282}



<a id="l00283" name="l00283"></a> 283 

<a id="l00284" name="l00284"></a>[ 284](structIRockyContactOutputData.xhtml#aff6677ca9cfa1f58ae87e308d7b19286)inline ROCKY_FUNCTIONS double3 [IRockyContactOutputData::get\_tangential\_relative\_velocity](structIRockyContactOutputData.xhtml#aff6677ca9cfa1f58ae87e308d7b19286)()

<a id="l00285" name="l00285"></a> 285{

<a id="l00286" name="l00286"></a> 286 return this-&gt;_output.tangential_velocity;

<a id="l00287" name="l00287"></a> 287}



<a id="l00288" name="l00288"></a> 288 

<a id="l00289" name="l00289"></a> 289 

<a id="l00290" name="l00290"></a> 290 

<a id="l00291" name="l00291"></a> 291// =================================================================================================

<a id="l00292" name="l00292"></a> 292// IRockyAdhesionOutputData

<a id="l00293" name="l00293"></a> 293// =================================================================================================

<a id="l00294" name="l00294"></a> 294 

<a id="l00302" name="l00302"></a>[ 302](structIRockyAdhesionOutputData.xhtml)struct [IRockyAdhesionOutputData](structIRockyAdhesionOutputData.xhtml)

<a id="l00303" name="l00303"></a> 303{

<a id="l00314" name="l00314"></a> 314 ROCKY_FUNCTIONS void [set\_normal\_force](structIRockyAdhesionOutputData.xhtml#ad7c2fa5fb68f60dfa44d4f24efa06c01)(double value);

<a id="l00315" name="l00315"></a> 315 

<a id="l00326" name="l00326"></a> 326 ROCKY_FUNCTIONS void [set\_tangential\_force](structIRockyAdhesionOutputData.xhtml#a99e185831e9028fe03fde885059767d0)(double3 value);

<a id="l00327" name="l00327"></a> 327 

<a id="l00328" name="l00328"></a> 328 

<a id="l00331" name="l00331"></a> 331 adhesion_output_data _output{};

<a id="l00332" name="l00332"></a> 332 

<a id="l00334" name="l00334"></a> 334};



<a id="l00335" name="l00335"></a> 335 

<a id="l00336" name="l00336"></a>[ 336](structIRockyAdhesionOutputData.xhtml#ad7c2fa5fb68f60dfa44d4f24efa06c01)inline ROCKY_FUNCTIONS void [IRockyAdhesionOutputData::set\_normal\_force](structIRockyAdhesionOutputData.xhtml#ad7c2fa5fb68f60dfa44d4f24efa06c01)(double value)

<a id="l00337" name="l00337"></a> 337{

<a id="l00338" name="l00338"></a> 338 this-&gt;_output.adhesive_normal_force = value;

<a id="l00339" name="l00339"></a> 339}



<a id="l00340" name="l00340"></a> 340 

<a id="l00341" name="l00341"></a>[ 341](structIRockyAdhesionOutputData.xhtml#a99e185831e9028fe03fde885059767d0)inline ROCKY_FUNCTIONS void [IRockyAdhesionOutputData::set\_tangential\_force](structIRockyAdhesionOutputData.xhtml#a99e185831e9028fe03fde885059767d0)(double3 value)

<a id="l00342" name="l00342"></a> 342{

<a id="l00343" name="l00343"></a> 343 this-&gt;_output.adhesive_tangential_force = value;

<a id="l00344" name="l00344"></a> 344}



[IRockyAdhesionOutputData](structIRockyAdhesionOutputData.xhtml)

**Definition** rocky_contact_output_data_api.hpp:303



[IRockyAdhesionOutputData::set\_tangential\_force](structIRockyAdhesionOutputData.xhtml#a99e185831e9028fe03fde885059767d0)

ROCKY_FUNCTIONS void set_tangential_force(double3 value)

**Definition** rocky_contact_output_data_api.hpp:341



[IRockyAdhesionOutputData::set\_normal\_force](structIRockyAdhesionOutputData.xhtml#ad7c2fa5fb68f60dfa44d4f24efa06c01)

ROCKY_FUNCTIONS void set_normal_force(double value)

**Definition** rocky_contact_output_data_api.hpp:336



[IRockyContactOutputData](structIRockyContactOutputData.xhtml)

**Definition** rocky_contact_output_data_api.hpp:37



[IRockyContactOutputData::get\_tangential\_force](structIRockyContactOutputData.xhtml#a25aeef724bbfb9eb24d8297df024f208)

ROCKY_FUNCTIONS double3 get_tangential_force()

**Definition** rocky_contact_output_data_api.hpp:274



[IRockyContactOutputData::set\_normal\_force](structIRockyContactOutputData.xhtml#a396b63164b3e2d7792bca3c7ba1ae274)

ROCKY_FUNCTIONS void set_normal_force(double value)

**Definition** rocky_contact_output_data_api.hpp:227



[IRockyContactOutputData::set\_home\_moment](structIRockyContactOutputData.xhtml#a4016d11738ce592f4e0b2853c552db13)

ROCKY_FUNCTIONS void set_home_moment(double3 value)

**Definition** rocky_contact_output_data_api.hpp:252



[IRockyContactOutputData::set\_home\_impact\_energy](structIRockyContactOutputData.xhtml#a6fa45c11ca5a3dc0e2e7ba76cceca590)

ROCKY_FUNCTIONS void set_home_impact_energy(double value)

**Definition** rocky_contact_output_data_api.hpp:237



[IRockyContactOutputData::set\_near\_moment](structIRockyContactOutputData.xhtml#a7eea9b368237f35e06d1e3381fef9a13)

ROCKY_FUNCTIONS void set_near_moment(double3 value)

**Definition** rocky_contact_output_data_api.hpp:257



[IRockyContactOutputData::set\_tangential\_force](structIRockyContactOutputData.xhtml#abaf1043a614caad9555e2c909eb21e12)

ROCKY_FUNCTIONS void set_tangential_force(double3 value)

**Definition** rocky_contact_output_data_api.hpp:232



[IRockyContactOutputData::set\_rolling\_dissipated\_power](structIRockyContactOutputData.xhtml#ad957c62e9c6bb92c8e13ef28ea8e0a3d)

ROCKY_FUNCTIONS void set_rolling_dissipated_power(double value)

**Definition** rocky_contact_output_data_api.hpp:262



[IRockyContactOutputData::get\_normal\_relative\_velocity](structIRockyContactOutputData.xhtml#adb3a62ea0f7da835ebeec3ec48d72214)

ROCKY_FUNCTIONS double get_normal_relative_velocity()

**Definition** rocky_contact_output_data_api.hpp:279



[IRockyContactOutputData::get\_normal\_force](structIRockyContactOutputData.xhtml#adfb7782976874a10981521e52742a015)

ROCKY_FUNCTIONS double get_normal_force()

**Definition** rocky_contact_output_data_api.hpp:269



[IRockyContactOutputData::set\_sliding](structIRockyContactOutputData.xhtml#ae0f380ec4f65945e54d4e3b939116979)

ROCKY_FUNCTIONS void set_sliding(bool value)

**Definition** rocky_contact_output_data_api.hpp:247



[IRockyContactOutputData::set\_near\_impact\_energy](structIRockyContactOutputData.xhtml#afaf9777156ccff17bad6b754bd9ec0e2)

ROCKY_FUNCTIONS void set_near_impact_energy(double value)

**Definition** rocky_contact_output_data_api.hpp:242



[IRockyContactOutputData::get\_tangential\_relative\_velocity](structIRockyContactOutputData.xhtml#aff6677ca9cfa1f58ae87e308d7b19286)

ROCKY_FUNCTIONS double3 get_tangential_relative_velocity()

**Definition** rocky_contact_output_data_api.hpp:284