![]() |
RigsofRods
Soft-body Physics Simulation
|
Flexbody = A deformable mesh; updated on CPU every frame, then uploaded to video memory. More...
#include <FlexBody.h>
Public Member Functions | |
~FlexBody () | |
void | reset () |
void | updateBlend () |
void | writeBlend () |
void | setCameraMode (int mode) |
Visibility control. More... | |
int | getCameraMode () |
void | computeFlexbody () |
Updates mesh deformation; works on CPU using local copy of vertex data. More... | |
void | updateFlexbodyVertexBuffers () |
void | setVisible (bool visible) |
void | setFlexbodyCastShadow (bool val) |
int | getVertexCount () |
Locator_t & | getVertexLocator (int vert) |
Ogre::Vector3 | getVertexPos (int vert) |
Ogre::Entity * | getEntity () |
std::string | getOrigMeshName () |
std::vector< NodeNum_t > & | getForsetNodes () |
std::string | getOrigMeshInfo () |
std::string | getLiveMeshInfo () |
NodeNum_t | getRefNode () |
NodeNum_t | getXNode () |
NodeNum_t | getYNode () |
Private Member Functions | |
FlexBody (RigDef::Flexbody *def, RoR::FlexBodyCacheData *preloaded_from_cache, RoR::GfxActor *gfx_actor, Ogre::Entity *entity, NodeNum_t ref, NodeNum_t nx, NodeNum_t ny, Ogre::Quaternion const &rot, std::vector< unsigned int > &node_indices) | |
void | defragmentFlexbodyMesh () |
Private Attributes | |
RoR::GfxActor * | m_gfx_actor |
size_t | m_vertex_count |
Ogre::Vector3 | m_flexit_center |
Updated per frame. More... | |
Ogre::Vector3 * | m_dst_pos |
Ogre::Vector3 * | m_src_normals |
Ogre::Vector3 * | m_dst_normals |
Ogre::ARGB * | m_src_colors |
Locator_t * | m_locators |
1 loc per vertex More... | |
NodeNum_t | m_node_center |
NodeNum_t | m_node_x |
NodeNum_t | m_node_y |
Ogre::Vector3 | m_center_offset |
Ogre::SceneNode * | m_scene_node |
Ogre::Entity * | m_scene_entity |
int | m_camera_mode |
Visibility control {-2 = always, -1 = 3rdPerson only, 0+ = cinecam index}. More... | |
int | m_shared_buf_num_verts |
Ogre::HardwareVertexBufferSharedPtr | m_shared_vbuf_pos |
Ogre::HardwareVertexBufferSharedPtr | m_shared_vbuf_norm |
Ogre::HardwareVertexBufferSharedPtr | m_shared_vbuf_color |
int | m_num_submesh_vbufs |
int | m_submesh_vbufs_vertex_counts [16] |
Ogre::HardwareVertexBufferSharedPtr | m_submesh_vbufs_pos [16] |
positions More... | |
Ogre::HardwareVertexBufferSharedPtr | m_submesh_vbufs_norm [16] |
normals More... | |
Ogre::HardwareVertexBufferSharedPtr | m_submesh_vbufs_color [16] |
colors More... | |
bool | m_uses_shared_vertex_data |
bool | m_has_texture |
bool | m_has_texture_blend |
bool | m_blend_changed |
std::vector< NodeNum_t > | m_forset_nodes |
std::string | m_orig_mesh_info |
Friends | |
class | RoR::FlexFactory |
class | RoR::FlexBodyFileIO |
Flexbody = A deformable mesh; updated on CPU every frame, then uploaded to video memory.
Definition at line 42 of file FlexBody.h.
|
private |
FlexBody::~FlexBody | ( | ) |
void FlexBody::computeFlexbody | ( | ) |
Updates mesh deformation; works on CPU using local copy of vertex data.
Definition at line 567 of file FlexBody.cpp.
|
private |
Definition at line 750 of file FlexBody.cpp.
|
inline |
Definition at line 70 of file FlexBody.h.
|
inline |
|
inline |
|
inline |
Definition at line 86 of file FlexBody.h.
|
inline |
std::string FlexBody::getOrigMeshName | ( | ) |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
void FlexBody::reset | ( | ) |
|
inline |
Visibility control.
mode | {-2 = always, -1 = 3rdPerson only, 0+ = cinecam index} |
Definition at line 69 of file FlexBody.h.
void FlexBody::setFlexbodyCastShadow | ( | bool | val | ) |
Definition at line 562 of file FlexBody.cpp.
void FlexBody::setVisible | ( | bool | visible | ) |
Definition at line 556 of file FlexBody.cpp.
void FlexBody::updateBlend | ( | ) |
Definition at line 661 of file FlexBody.cpp.
void FlexBody::updateFlexbodyVertexBuffers | ( | ) |
void FlexBody::writeBlend | ( | ) |
|
friend |
Definition at line 45 of file FlexBody.h.
|
friend |
Definition at line 44 of file FlexBody.h.
|
private |
Definition at line 128 of file FlexBody.h.
|
private |
Visibility control {-2 = always, -1 = 3rdPerson only, 0+ = cinecam index}.
Definition at line 112 of file FlexBody.h.
|
private |
Definition at line 109 of file FlexBody.h.
|
private |
Definition at line 102 of file FlexBody.h.
|
private |
Definition at line 100 of file FlexBody.h.
|
private |
Updated per frame.
Definition at line 98 of file FlexBody.h.
|
private |
Definition at line 131 of file FlexBody.h.
|
private |
Definition at line 96 of file FlexBody.h.
|
private |
Definition at line 126 of file FlexBody.h.
|
private |
Definition at line 127 of file FlexBody.h.
|
private |
1 loc per vertex
Definition at line 104 of file FlexBody.h.
|
private |
Definition at line 106 of file FlexBody.h.
|
private |
Definition at line 107 of file FlexBody.h.
|
private |
Definition at line 108 of file FlexBody.h.
|
private |
Definition at line 119 of file FlexBody.h.
|
private |
Definition at line 132 of file FlexBody.h.
|
private |
Definition at line 111 of file FlexBody.h.
|
private |
Definition at line 110 of file FlexBody.h.
|
private |
Definition at line 114 of file FlexBody.h.
|
private |
Definition at line 117 of file FlexBody.h.
|
private |
Definition at line 116 of file FlexBody.h.
|
private |
Definition at line 115 of file FlexBody.h.
|
private |
Definition at line 103 of file FlexBody.h.
|
private |
Definition at line 101 of file FlexBody.h.
|
private |
colors
Definition at line 123 of file FlexBody.h.
|
private |
normals
Definition at line 122 of file FlexBody.h.
|
private |
positions
Definition at line 121 of file FlexBody.h.
|
private |
Definition at line 120 of file FlexBody.h.
|
private |
Definition at line 125 of file FlexBody.h.
|
private |
Definition at line 97 of file FlexBody.h.