|
RigsofRods
Soft-body Physics Simulation
|
Go to the documentation of this file.
56 Ogre::Quaternion
const & rot,
57 std::vector<unsigned int> & node_indices
#define ROR_ASSERT(_EXPR)
void destroyOgreObjects()
Ogre::SceneNode * m_scene_node
PlaceholderType m_placeholder_type
std::vector< NodeNum_t > m_forset_nodes
int m_submesh_vbufs_vertex_counts[16]
bool m_uses_shared_vertex_data
void updateFlexbodyVertexBuffers()
std::string m_orig_mesh_name
static const NodeNum_t NODENUM_INVALID
void defragmentFlexbodyMesh()
Ogre::HardwareVertexBufferSharedPtr m_shared_vbuf_pos
std::string PrintMeshInfo(std::string const &title, Ogre::MeshPtr mesh)
std::vector< NodeNum_t > & getForsetNodes()
PlaceholderType getPlaceholderType() const
void setVisible(bool visible)
Locator_t & getVertexLocator(int vert)
FlexBody(RoR::FlexBodyCacheData *preloaded_from_cache, RoR::GfxActor *gfx_actor, Ogre::Entity *entity, NodeNum_t ref, NodeNum_t nx, NodeNum_t ny, Ogre::Vector3 offset, Ogre::Quaternion const &rot, std::vector< unsigned int > &node_indices)
Ogre::Vector3 * m_dst_pos
Ogre::Vector3 * m_dst_normals
@ FAULTY_MESH_PLACEHOLDER
std::string getLiveMeshInfo()
const std::string & getOrigMeshName() const
int m_camera_mode
Visibility control {-2 = always, -1 = 3rdPerson only, 0+ = cinecam index}.
static const FlexbodyID_t FLEXBODYID_INVALID
uint16_t NodeNum_t
Node position within Actor::ar_nodes; use RoR::NODENUM_INVALID as empty value.
Core data structures for simulation; Everything affected by by either physics, network or user intera...
Ogre::HardwareVertexBufferSharedPtr m_submesh_vbufs_color[16]
colors
@ FAULTY_FORSET_PLACEHOLDER
Ogre::ARGB * m_src_colors
int m_shared_buf_num_verts
CameraMode_t fb_camera_mode_active
Dynamic visibility mode {0 and higher = cinecam index}.
std::string getOrigMeshInfo()
Central state/object manager and communications hub.
Ogre::Entity * getEntity()
RoR::GfxActor * m_gfx_actor
void setFlexbodyCastShadow(bool val)
static const char * PlaceholderTypeToString(PlaceholderType type)
@ TUNING_REMOVED_PLACEHOLDER
CameraMode_t fb_camera_mode_orig
Dynamic visibility mode {0 and higher = cinecam index}.
Ogre::Vector3 m_flexit_center
Updated per frame.
FlexbodyID_t getID() const
Ogre::Entity * m_scene_entity
Ogre::Vector3 getVertexPos(int vert)
static CameraMode_t CAMERA_MODE_ALWAYS_VISIBLE
Locator_t * m_locators
1 loc per vertex
Ogre::Vector3 m_center_offset
Ogre::Vector3 * m_src_normals
int FlexbodyID_t
Index to GfxActor::m_flexbodies, use RoR::FLEXBODYID_INVALID as empty value.
Flexbody = A deformable mesh; updated on CPU every frame, then uploaded to video memory.
void computeFlexbody()
Updates mesh deformation; works on CPU using local copy of vertex data.
Ogre::HardwareVertexBufferSharedPtr m_shared_vbuf_color
Ogre::HardwareVertexBufferSharedPtr m_submesh_vbufs_pos[16]
positions
Ogre::HardwareVertexBufferSharedPtr m_shared_vbuf_norm
Data structures representing 'truck' file format, see https://docs.rigsofrods.org/vehicle-creation/fi...
Ogre::HardwareVertexBufferSharedPtr m_submesh_vbufs_norm[16]
normals
Enables saving and loading flexbodies from/to binary file.
std::string m_orig_mesh_info