chrono::irrlicht Namespace Reference

Description

Namespace with classes for the Irrlicht module.

Namespaces

 tools
 Utilities for interfacing Chrono and Irrlicht.
 

Classes

class  ChIrrGUI
 Irrlicht GUI attached to a ChVisualSystemIrrlicht. More...
 
class  ChIrrNodeModel
 Irrlicht scene node associated with the visual model of a physics item. More...
 
class  ChIrrNodeShape
 Irrlicht scene node associated with a visual shape in a visual model. More...
 
class  ChVisualSystemIrrlicht
 Irrlicht-based Chrono run-time visualization system. More...
 
class  CScreenQuad
 CScreenQuad. More...
 
class  CShaderPreprocessor
 CShaderPreprocessor. More...
 
class  DepthShaderCB
 DepthShaderCB. More...
 
class  EffectHandler
 Main effect handling class, use this to apply shadows and effects. More...
 
class  RTSCamera
 Class to create an interactive videocamera in Irrlicht, that is similar to the Maya camera but hasn't the problems that the Maya camera has in Irrlicht 1.5. More...
 
class  ScreenQuadCB
 ScreenQuadCB. More...
 
class  ShadowShaderCB
 ShadowShaderCB. More...
 

Enumerations

enum  E_SHADER_EXTENSION { ESE_GLSL, ESE_HLSL, ESE_COUNT }
 
enum  E_SHADOW_MODE {
  ESM_RECEIVE, ESM_CAST, ESM_BOTH, ESM_EXCLUDE,
  ESM_COUNT
}
 Shadow mode enums, sets whether a node receives shadows, casts shadows, or both. More...
 
enum  E_FILTER_TYPE {
  EFT_NONE, EFT_4PCF, EFT_8PCF, EFT_12PCF,
  EFT_16PCF, EFT_COUNT
}
 Various filter types, up to 16 samples PCF.
 
enum  ContactsDrawMode {
  CONTACT_NORMALS = 0, CONTACT_DISTANCES, CONTACT_FORCES_N, CONTACT_FORCES,
  CONTACT_NONE
}
 
enum  ContactsLabelMode {
  CONTACT_DISTANCES_VAL, CONTACT_FORCES_VAL, CONTACT_FORCES_N_VAL, CONTACT_FORCES_T_VAL,
  CONTACT_TORQUES_VAL, CONTACT_TORQUES_S_VAL, CONTACT_TORQUES_R_VAL, CONTACT_NONE_VAL
}
 
enum  LinkDrawMode { LINK_REACT_FORCE = 0, LINK_REACT_TORQUE, LINK_NONE }
 
enum  LinkLabelMode {
  LINK_REACT_FORCE_VAL = 0, LINK_REACT_FORCE_X, LINK_REACT_FORCE_Y, LINK_REACT_FORCE_Z,
  LINK_REACT_TORQUE_VAL, LINK_REACT_TORQUE_X, LINK_REACT_TORQUE_Y, LINK_REACT_TORQUE_Z,
  LINK_NONE_VAL
}
 

Functions

irr::core::array< SDefineExp > grabDefineExpressions (irr::core::stringc &shaderProgram)
 
std::string getFileContent (const std::string pFile)
 
IAnimatedMesh * createEllipticalMesh (f32 radiusH, f32 radiusV, f32 Ylow, f32 Yhigh, f32 offset, u32 polyCountX, u32 polyCountY)
 
IMesh * createCubeMesh (const irr::core::vector3df &size)
 Create an Irrlicht mesh representing a box. More...
 
IMesh * createConeMesh (f32 radius, f32 length, u32 tesselation)
 
IMesh * createCylinderMesh (f32 radius, f32 length, u32 tesselation)
 
IMesh * createCapsuleMesh (f32 radius, f32 hlen, u32 numSegV, u32 numSegR)
 
IMesh * createTruncatedConeMesh (f32 radius_top, f32 radius_low, f32 length, u32 tesselation)
 
void fillChTrimeshFromIrlichtMesh (chrono::ChTriangleMesh *chTrimesh, IMesh *pMesh)
 
void fillIrlichtMeshFromChTrimesh (IMesh *pMesh, chrono::ChTriangleMesh *chTrimesh, irr::video::SColor clr)
 
ChApiIrr irr::scene::IAnimatedMesh * createEllipticalMesh (irr::f32 radiusH, irr::f32 radiusV, irr::f32 Ylow, irr::f32 Yhigh, irr::f32 offset, irr::u32 polyCountX, irr::u32 polyCountY)
 Some functions to allow easy creation of meshes for Irrlicht visualization. More...
 
ChApiIrr irr::scene::IMesh * createCylinderMesh (irr::f32 radius, irr::f32 height, irr::u32 tesselation)
 Create an Irrlicht mesh representing a cylinder. More...
 
ChApiIrr irr::scene::IMesh * createCapsuleMesh (irr::f32 radius, irr::f32 hlen, irr::u32 numSegV, irr::u32 numSegR)
 Create an Irrlicht mesh representing a capsule. More...
 
ChApiIrr irr::scene::IMesh * createTruncatedConeMesh (irr::f32 radius_top, irr::f32 radius_low, irr::f32 height, irr::u32 tesselation)
 Create an Irrlicht mesh representing a truncated cone. More...
 
ChApiIrr irr::scene::IMesh * createConeMesh (irr::f32 radius_low, irr::f32 height, irr::u32 tesselation)
 Create an Irrlicht mesh representing a cone. More...
 
ChApiIrr void fillChTrimeshFromIrlichtMesh (ChTriangleMesh *chTrimesh, irr::scene::IMesh *pMesh)
 This function is based on a modified version of the irrlicht_bullet demo, see http://www.continuousphysics.com It is used to convert an Irrlicht mesh into a ChTriangleMesh, which is used for collision detection in Chrono. More...
 
ChApiIrr void fillIrlichtMeshFromChTrimesh (irr::scene::IMesh *pMesh, ChTriangleMesh *chTrimesh, irr::video::SColor clr=irr::video::SColor(255, 255, 255, 255))
 Given a ChTriangleMesh object, computes an Irrlicht mesh. More...
 

Variables

const char *const LIGHT_MODULATE_P [ESE_COUNT]
 
const char *const SHADOW_PASS_1P [ESE_COUNT]
 
const char *const SHADOW_PASS_1PT [ESE_COUNT]
 
const char *const SHADOW_PASS_1V [ESE_COUNT]
 
const char *const SHADOW_PASS_2P [ESE_COUNT]
 
const char *const SHADOW_PASS_2V [ESE_COUNT]
 
const char *const SIMPLE_P [ESE_COUNT]
 
const char *const WHITE_WASH_P [ESE_COUNT]
 
const char *const WHITE_WASH_P_ADD [ESE_COUNT]
 
const char *const SCREEN_QUAD_V [ESE_COUNT]
 
const char *const VSM_BLUR_P [ESE_COUNT]
 

Enumeration Type Documentation

◆ E_SHADOW_MODE

Shadow mode enums, sets whether a node receives shadows, casts shadows, or both.

If the mode is ESM_CAST, it will not be affected by shadows or lighting.

Variable Documentation

◆ LIGHT_MODULATE_P

const char* const chrono::irrlicht::LIGHT_MODULATE_P[ESE_COUNT]
Initial value:
= {
"uniform sampler2D ColorMapSampler;\n"
"uniform sampler2D ScreenMapSampler;\n"
""
"void main() "
"{ "
" vec4 finalCol = texture2D(ColorMapSampler, gl_TexCoord[0].xy);\n"
" vec4 lightCol = texture2D(ScreenMapSampler, gl_TexCoord[0].xy);\n"
""
" gl_FragColor = finalCol * lightCol;\n"
"}",
"sampler2D ColorMapSampler : register(s0);\n"
"sampler2D ScreenMapSampler : register(s1);\n"
""
"float4 pixelMain(float2 TexCoords : TEXCOORD0) : COLOR0"
"{ "
" float4 finalCol = tex2D(ColorMapSampler, TexCoords);\n"
" float4 lightCol = tex2D(ScreenMapSampler, TexCoords);\n"
""
" return finalCol * lightCol;\n"
"}"}

◆ SHADOW_PASS_1P

const char* const chrono::irrlicht::SHADOW_PASS_1P[ESE_COUNT]
Initial value:
= {
"void main() "
"{"
" vec4 vInfo = gl_TexCoord[0];\n"
" float depth = vInfo.z / vInfo.x;\n"
" gl_FragColor = vec4(depth, depth * depth, 0.0, 0.0);\n"
"}",
"float4 pixelMain(float4 ClipPos: TEXCOORD0) : COLOR0"
"{"
" float depth = ClipPos.z / ClipPos.x;\n"
" return float4(depth, depth * depth, 0.0, 0.0);\n"
"}"}

◆ SHADOW_PASS_1PT

const char* const chrono::irrlicht::SHADOW_PASS_1PT[ESE_COUNT]
Initial value:
= {
"uniform sampler2D ColorMapSampler;\n"
""
"void main() "
"{"
" vec4 vInfo = gl_TexCoord[0];\n"
""
" float depth = vInfo.z / vInfo.x;\n"
""
" float alpha = texture2D(ColorMapSampler, gl_TexCoord[1].xy).a;\n"
""
" gl_FragColor = vec4(depth, depth * depth, 0.0, alpha);\n"
"}",
"sampler2D ColorMapSampler : register(s0);\n"
""
"float4 pixelMain(float4 Color: TEXCOORD0, float2 Texcoords: TEXCOORD1) : COLOR0"
"{"
" float depth = Color.z / Color.w;\n"
" "
" float alpha = tex2D(ColorMapSampler, Texcoords).a;\n"
" "
" return float4(depth, depth * depth, 0.0, alpha);\n"
"}"}

◆ SIMPLE_P

const char* const chrono::irrlicht::SIMPLE_P[ESE_COUNT]
Initial value:
= {
"uniform sampler2D ColorMapSampler;\n"
""
"void main() "
"{ "
" vec4 finalCol = texture2D(ColorMapSampler, gl_TexCoord[0].xy);\n"
" gl_FragColor = finalCol;\n"
"}",
"sampler2D ColorMapSampler : register(s0);\n"
""
"float4 pixelMain(float2 TexCoords : TEXCOORD0) : COLOR0"
"{ "
" float4 finalCol = tex2D(ColorMapSampler, TexCoords);\n"
" return finalCol;\n"
"}"}

◆ WHITE_WASH_P

const char* const chrono::irrlicht::WHITE_WASH_P[ESE_COUNT]
Initial value:
= {
"uniform sampler2D ColorMapSampler;\n"
""
"void main() "
"{"
" float alpha = texture2D(ColorMapSampler, gl_TexCoord[1].xy).a;\n"
""
" gl_FragColor = vec4(1.0, 1.0, 1.0, alpha);\n"
"}",
"sampler2D ColorMapSampler : register(s0);\n"
""
"float4 pixelMain(float4 Color: TEXCOORD0, float2 Texcoords: TEXCOORD1) : COLOR0"
"{"
" float alpha = tex2D(ColorMapSampler, Texcoords).a;\n"
""
" return float4(1.0, 1.0, 1.0, alpha);\n"
"}"}

◆ WHITE_WASH_P_ADD

const char* const chrono::irrlicht::WHITE_WASH_P_ADD[ESE_COUNT]
Initial value:
= {
"uniform sampler2D ColorMapSampler;\n"
"float luminance(vec3 color)"
"{"
" return clamp(color.r * 0.3 + color.g * 0.59 + color.b * 0.11, 0.0, 1.0);\n"
"}"
"void main() "
"{"
" vec4 diffuseTex = texture2D(ColorMapSampler, gl_TexCoord[1].xy);\n"
" //diffuseTex *= gl_TexCoord[2];\n"
""
" gl_FragColor = vec4(1.0, 1.0, 1.0, luminance(diffuseTex.rgb));\n"
"}",
"sampler2D ColorMapSampler : register(s0);\n"
""
"float luminance(float3 color)"
"{"
" return clamp(color.r * 0.3 + color.g * 0.59 + color.b * 0.11, 0.0, 1.0);\n"
"}"
""
"float4 pixelMain(float4 Color : TEXCOORD0, float2 Texcoords : TEXCOORD1, float4 VColor : TEXCOORD2) : COLOR0"
"{"
" float4 diffuseTex = tex2D(ColorMapSampler, Texcoords);\n"
" diffuseTex *= VColor;\n"
""
" return float4(1.0, 1.0, 1.0, luminance(diffuseTex.rgb));\n"
"}"}