Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/WolfireGames/overgrowth.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'Source/Objects/riggedobject.cpp')
-rw-r--r--Source/Objects/riggedobject.cpp580
1 files changed, 275 insertions, 305 deletions
diff --git a/Source/Objects/riggedobject.cpp b/Source/Objects/riggedobject.cpp
index 90800644..4e3857ed 100644
--- a/Source/Objects/riggedobject.cpp
+++ b/Source/Objects/riggedobject.cpp
@@ -179,8 +179,8 @@ RiggedObject::RiggedObject() :
palette_colors.resize(max_palette_elements, vec3(1.0f));
palette_colors_srgb.resize(max_palette_elements, vec3(1.0f));
- for(int i=0; i<4; ++i){
- model_id[i] = -1;
+ for(int & i : model_id){
+ i = -1;
}
anim_update_period = 2;
@@ -205,11 +205,11 @@ RiggedObject::~RiggedObject() {
free(simd_bone_mats);
#endif
#endif
- for(int i=0; i<4; ++i){
- Models::Instance()->DeleteModel(model_id[i]);
+ for(int i : model_id){
+ Models::Instance()->DeleteModel(i);
}
- for(unsigned i=0; i<morph_targets.size(); ++i){
- morph_targets[i].Dispose();
+ for(auto & morph_target : morph_targets){
+ morph_target.Dispose();
}
// TODO: why do we get a black screen when returning to the main menu on Mac
@@ -446,14 +446,13 @@ void RiggedObject::PreDrawFrame(float curr_game_time) {
}
else {
int total_connections = 0;
- for (unsigned j = 0; j < kMaxBoneConnects; ++j) {
- total_connections += attached_env_object.bone_connects[j].num_connections;
+ for (auto & bone_connect : attached_env_object.bone_connects) {
+ total_connections += bone_connect.num_connections;
}
mat4 total_mat(0.0f);
- for (unsigned j = 0; j < kMaxBoneConnects; ++j) {
- const BoneConnect &bone_connect = attached_env_object.bone_connects[j];
- if (bone_connect.num_connections) {
+ for (const auto & bone_connect : attached_env_object.bone_connects) {
+ if (bone_connect.num_connections) {
mat4 mat = display_bone_transforms[bone_connect.bone_id].GetMat4() * bone_connect.rel_mat;
total_mat += mat * ((float)bone_connect.num_connections / (float)total_connections);
}
@@ -496,11 +495,11 @@ void RiggedObject::StoreNetworkBones() {
void RiggedObject::StoreNetworkMorphTargets() {
// first check if not present
if (morph_targets.size() != network_morphs.size()) {
- for (uint32_t i = 0; i < morph_targets.size(); i++) {
+ for (auto & morph_target : morph_targets) {
bool present = false;
- for (uint32_t j = 0; j < network_morphs.size(); j++) {
- if (morph_targets[i].name == network_morphs[j].name) {
+ for (auto & network_morph : network_morphs) {
+ if (morph_target.name == network_morph.name) {
present = true;
break;
}
@@ -509,31 +508,31 @@ void RiggedObject::StoreNetworkMorphTargets() {
if (present == false) {
MorphTargetStateStorage missing_morph;
- missing_morph.disp_weight = morph_targets[i].disp_weight;
- missing_morph.name = morph_targets[i].name;
+ missing_morph.disp_weight = morph_target.disp_weight;
+ missing_morph.name = morph_target.name;
missing_morph.dirty = true;
- missing_morph.mod_weight = morph_targets[i].mod_weight;
+ missing_morph.mod_weight = morph_target.mod_weight;
network_morphs.push_back(missing_morph);
}
}
}
- for (uint32_t i = 0; i < morph_targets.size(); i++) {
- for (uint32_t j = 0; j < network_morphs.size(); j++) {
- if (morph_targets[i].name == network_morphs[j].name) {
- float a = morph_targets[i].disp_weight;
- float b = network_morphs[j].disp_weight;
+ for (auto & morph_target : morph_targets) {
+ for (auto & network_morph : network_morphs) {
+ if (morph_target.name == network_morph.name) {
+ float a = morph_target.disp_weight;
+ float b = network_morph.disp_weight;
- float c = network_morphs[j].mod_weight;
- float d = morph_targets[i].mod_weight;
+ float c = network_morph.mod_weight;
+ float d = morph_target.mod_weight;
if (std::abs(a - b) > 1e-4 ||
std::abs(c - d) > 1e-4) {
- network_morphs[j].mod_weight = morph_targets[i].mod_weight;
- network_morphs[j].disp_weight = morph_targets[i].disp_weight;
- network_morphs[j].dirty = true;
+ network_morph.mod_weight = morph_target.mod_weight;
+ network_morph.disp_weight = morph_target.disp_weight;
+ network_morph.dirty = true;
}
}
@@ -550,8 +549,8 @@ void RiggedObject::PreDrawCamera(float curr_game_time) {
}
PROFILER_ZONE(g_profiler_ctx, "RiggedObject::PreDraw");
- for(int i=0; i<4; ++i){
- need_vbo_update[i] = true;
+ for(bool & i : need_vbo_update){
+ i = true;
}
Graphics::Instance()->setGLState(rigged_object_gl_state.gl_state);
@@ -768,8 +767,8 @@ void RiggedObject::Draw(const mat4& proj_view_matrix, Object::DrawType type) {
shaders->SetUniformVec3("blood_tint", vec3(-1,-1,-1)); // Presumably this is here to force refreshing this uniform?
shaders->SetUniformVec3("blood_tint", Graphics::Instance()->config_.blood_color());
std::vector<vec3> ambient_cube_color_vec;
- for(int i=0; i<6; ++i){
- ambient_cube_color_vec.push_back(ambient_cube_color[i]);
+ for(auto & i : ambient_cube_color){
+ ambient_cube_color_vec.push_back(i);
}
shaders->SetUniformVec3Array("ambient_cube_color", ambient_cube_color_vec);
shaders->SetUniformVec3Array("tint_palette", palette_colors_srgb);
@@ -795,8 +794,7 @@ void RiggedObject::Draw(const mat4& proj_view_matrix, Object::DrawType type) {
std::vector<mat4> light_volume_matrix;
std::vector<mat4> light_volume_matrix_inverse;
- for(int i=0, len=scenegraph_->light_volume_objects_.size(); i<len; ++i){
- Object* obj = scenegraph_->light_volume_objects_[i];
+ for(auto obj : scenegraph_->light_volume_objects_){
const mat4 &mat = obj->GetTransform();
light_volume_matrix.push_back(mat);
light_volume_matrix_inverse.push_back(invert(mat));
@@ -925,8 +923,8 @@ void RiggedObject::Draw(const mat4& proj_view_matrix, Object::DrawType type) {
vel_vbo.Fill(model_num_verts*3*sizeof(GLfloat), &vel[0]);
} else {
PROFILER_ZONE(g_profiler_ctx, "Calculate null vertex velocities");
- for(int i=0, len=vel.size(); i<len; ++i){
- vel[i] = 0.0f;
+ for(float & i : vel){
+ i = 0.0f;
}
vel_vbo.SetHint(model_num_verts*3*sizeof(GLfloat),kVBODynamic);
vel_vbo.Fill(model_num_verts*3*sizeof(GLfloat), &vel[0]);
@@ -1048,15 +1046,13 @@ bool RiggedObject::DrawBoneConnectUI(Object* objects[], int num_obj_ids, IMUICon
Object* obj = objects[obj_id_iter];
// Check if we already have a connection between this object and this character
bool already_attached = false;
- for(unsigned j=0; j<children.size(); ++j){
- AttachedEnvObject& attached_env_object = children[j];
+ for(auto & attached_env_object : children){
if(attached_env_object.direct_ptr == obj){
// If this object is already attached to the selected bone, increment the number of connections
attached_env_object.bone_connection_dirty = true;
already_attached = true;
bool already_attached_to_bone = false;
- for(unsigned k=0; k<kMaxBoneConnects; ++k){
- BoneConnect& bone_connect = attached_env_object.bone_connects[k];
+ for(auto & bone_connect : attached_env_object.bone_connects){
if(bone_connect.bone_id == (int)i){
++bone_connect.num_connections;
already_attached_to_bone = true;
@@ -1065,8 +1061,7 @@ bool RiggedObject::DrawBoneConnectUI(Object* objects[], int num_obj_ids, IMUICon
}
// If this object is not already attached to the bone, try to attach it with a spare slot
if(!already_attached_to_bone){
- for(unsigned k=0; k<kMaxBoneConnects; ++k){
- BoneConnect& bone_connect = attached_env_object.bone_connects[k];
+ for(auto & bone_connect : attached_env_object.bone_connects){
if(bone_connect.num_connections == 0){
bone_connect.bone_id = i;
bone_connect.num_connections = 1;
@@ -1107,8 +1102,7 @@ bool RiggedObject::DrawBoneConnectUI(Object* objects[], int num_obj_ids, IMUICon
AttachedEnvObject& attached_obj = children[j];
if(attached_obj.direct_ptr == obj){
int total_connections = 0; //NOTE(David): Number of connections remaining between object and character
- for(unsigned k=0; k<kMaxBoneConnects; ++k){
- BoneConnect& bone_connect = attached_obj.bone_connects[k];
+ for(auto & bone_connect : attached_obj.bone_connects){
if(bone_connect.bone_id == (int)i && bone_connect.num_connections > 0){
--bone_connect.num_connections;
}
@@ -1138,12 +1132,11 @@ bool RiggedObject::DrawBoneConnectUI(Object* objects[], int num_obj_ids, IMUICon
DebugDraw::Instance()->AddLine(start, end, bone_color, _delete_on_draw, _DD_XRAY);
}
- for(unsigned i=0; i<children.size(); ++i){
- const AttachedEnvObject& attached_env_object = children[i];
- Object* obj = children[i].direct_ptr;
+ for(auto & i : children){
+ const AttachedEnvObject& attached_env_object = i;
+ Object* obj = i.direct_ptr;
if(obj && obj->Selected()){
- for(unsigned j=0; j<kMaxBoneConnects; ++j){
- const BoneConnect& bone_connect = attached_env_object.bone_connects[j];
+ for(const auto & bone_connect : attached_env_object.bone_connects){
if(bone_connect.num_connections > 0){
int bone_id = bone_connect.bone_id;
const Bone& bone = skeleton_.bones[skeleton_.physics_bones[bone_id].bone];
@@ -1268,13 +1261,13 @@ void RiggedObject::Update(float timestep) {
}
first_ragdoll_frame = false;
// Updated attached items
- for(AttachedItemList::iterator iter = attached_items.items.begin(); iter != attached_items.items.end(); ++iter) {
- UpdateAttachedItemRagdoll(*iter, skeleton_, weapon_offset);
+ for(auto & item : attached_items.items) {
+ UpdateAttachedItemRagdoll(item, skeleton_, weapon_offset);
}
// Make sure attached items are not asleep if skeleton is awake
- for(AttachedItemList::iterator iter = stuck_items.items.begin(); iter != stuck_items.items.end(); ++iter) {
+ for(auto & item : stuck_items.items) {
if(skeleton_.physics_bones[0].bullet_object->IsActive()){
- iter->item->WakeUpPhysics();
+ item.item->WakeUpPhysics();
}
}
}
@@ -1284,8 +1277,8 @@ void RiggedObject::Update(float timestep) {
--prev_anim_update_time;
if(time_until_next_anim_update <= 0) {
- for(unsigned i=0; i<morph_targets.size(); ++i){
- morph_targets[i].UpdateForInterpolation();
+ for(auto & morph_target : morph_targets){
+ morph_target.UpdateForInterpolation();
}
if(!animated){
PROFILER_ZONE(g_profiler_ctx, "Update ragdoll animation");
@@ -1322,11 +1315,10 @@ void RiggedObject::Update(float timestep) {
skeleton_.RefreshFixedJoints(animation_frame_bone_matrices);
// Apply morph weights from animation output
std::map<std::string, MorphTarget*> morph_target_names;
- for(unsigned i=0; i<morph_targets.size(); ++i){
- morph_target_names[morph_targets[i].name] = &morph_targets[i];
+ for(auto & morph_target : morph_targets){
+ morph_target_names[morph_target.name] = &morph_target;
}
- for(unsigned i=0; i<anim_output.shape_keys.size(); ++i){
- const ShapeKeyBlend& skb = anim_output.shape_keys[i];
+ for(auto & skb : anim_output.shape_keys){
const std::string &label = skb.label;
if(morph_target_names.find(label) != morph_target_names.end()) {
morph_target_names[label]->anim_weight =
@@ -1345,11 +1337,11 @@ void RiggedObject::Update(float timestep) {
PROFILER_ZONE(g_profiler_ctx, "anim_client.GetMatrices()");
anim_client.GetMatrices(anim_output, &skeleton_.parents);
}
- for(int i=0, len=anim_output.matrices.size(); i<len; ++i){
- anim_output.matrices[i].origin *= model_char_scale;
+ for(auto & matrice : anim_output.matrices){
+ matrice.origin *= model_char_scale;
}
- for(int i=0, len=anim_output.ik_bones.size(); i<len; ++i){
- anim_output.ik_bones[i].transform.origin *= model_char_scale;
+ for(auto & ik_bone : anim_output.ik_bones){
+ ik_bone.transform.origin *= model_char_scale;
}
weap_anim_info_map = anim_output.weap_anim_info_map;
// Copy bone transforms for further manipulation
@@ -1366,14 +1358,14 @@ void RiggedObject::Update(float timestep) {
vec4 angle_axis(0.0f,1.0f,0.0f,total_rotation);
quaternion rot(angle_axis);
mat4 rotmat4 = Mat4FromQuaternion(rot);
- for(unsigned i=0; i<transforms.size(); i++){
- transforms[i] = rotmat4 * transforms[i];
+ for(auto & transform : transforms){
+ transform = rotmat4 * transform;
}
- for(int i=0, len=anim_output.ik_bones.size(); i<len; ++i){
- anim_output.ik_bones[i].transform = rotmat4 * anim_output.ik_bones[i].transform;
+ for(auto & ik_bone : anim_output.ik_bones){
+ ik_bone.transform = rotmat4 * ik_bone.transform;
}
- for(WeapAnimInfoMap::iterator iter = weap_anim_info_map.begin(); iter != weap_anim_info_map.end(); ++iter) {
- WeapAnimInfo &weap_anim_info = iter->second;
+ for(auto & iter : weap_anim_info_map) {
+ WeapAnimInfo &weap_anim_info = iter.second;
if(weap_anim_info.relative_id == -1){
weap_anim_info.bone_transform = rotmat4 * weap_anim_info.bone_transform;
}
@@ -1384,11 +1376,11 @@ void RiggedObject::Update(float timestep) {
transforms[i].origin += total_center_offset;
animation_frame_bone_matrices[i] = transforms[i];
}
- for(int i=0, len=anim_output.ik_bones.size(); i<len; ++i){
- anim_output.ik_bones[i].transform.origin += total_center_offset;
+ for(auto & ik_bone : anim_output.ik_bones){
+ ik_bone.transform.origin += total_center_offset;
}
- for(std::map<int, WeapAnimInfo>::iterator iter = weap_anim_info_map.begin(); iter != weap_anim_info_map.end(); ++iter) {
- WeapAnimInfo &weap_anim_info = iter->second;
+ for(auto & iter : weap_anim_info_map) {
+ WeapAnimInfo &weap_anim_info = iter.second;
if(weap_anim_info.relative_id == -1){
weap_anim_info.bone_transform.origin += total_center_offset;
} else {
@@ -1398,11 +1390,10 @@ void RiggedObject::Update(float timestep) {
// Apply animation morphs
std::map<std::string, MorphTarget*> morph_target_names;
- for(unsigned i=0; i<morph_targets.size(); ++i){
- morph_target_names[morph_targets[i].name] = &morph_targets[i];
+ for(auto & morph_target : morph_targets){
+ morph_target_names[morph_target.name] = &morph_target;
}
- for(unsigned i=0; i<anim_output.shape_keys.size(); ++i){
- const ShapeKeyBlend& skb = anim_output.shape_keys[i];
+ for(auto & skb : anim_output.shape_keys){
const std::string &label = skb.label;
if(morph_target_names.find(label) != morph_target_names.end()) {
morph_target_names[label]->anim_weight = skb.weight*skb.weight_weight;
@@ -1411,8 +1402,7 @@ void RiggedObject::Update(float timestep) {
// Apply status keys
status_keys.clear();
- for(unsigned i=0; i<anim_output.status_keys.size(); ++i){
- const StatusKeyBlend key = anim_output.status_keys[i];
+ for(auto key : anim_output.status_keys){
status_keys[key.label] = key.weight*key.weight_weight;
}
@@ -1468,12 +1458,12 @@ void RiggedObject::Update(float timestep) {
}
if(animated){
- for(AttachedItemList::iterator iter = attached_items.items.begin(); iter != attached_items.items.end(); ++iter) {
- ItemObjectScriptReader& item = iter->item;
+ for(auto & iter : attached_items.items) {
+ ItemObjectScriptReader& item = iter.item;
item.SetInterpInfo(GetTimeSinceLastAnimUpdate(), GetTimeBetweenLastTwoAnimUpdates());
}
- for(AttachedItemList::iterator iter=stuck_items.items.begin(); iter != stuck_items.items.end(); ++iter) {
- iter->item.SetInterpInfo(GetTimeSinceLastAnimUpdate(), GetTimeBetweenLastTwoAnimUpdates());
+ for(auto & item : stuck_items.items) {
+ item.item.SetInterpInfo(GetTimeSinceLastAnimUpdate(), GetTimeBetweenLastTwoAnimUpdates());
}
}
}
@@ -1498,14 +1488,13 @@ namespace {
{
std::vector<float> sm_vertices(sm.vertices.size());
std::vector<float> sm_tex_coords(sm.tex_coords.size());
- for(int i=0, len=vert_parent.size(); i<len; ++i){
- WOLFIRE_SIMPLIFY::ParentRecordList parents = vert_parent[i];
+ for(auto parents : vert_parent){
float total[3];
- for(int j=0; j<3; ++j){
- total[j] = 0.0f;
+ for(float & j : total){
+ j = 0.0f;
}
- for(WOLFIRE_SIMPLIFY::ParentRecordList::iterator iter = parents.begin(); iter != parents.end(); ++iter){
- WOLFIRE_SIMPLIFY::ParentRecord pr = (*iter);
+ for(auto & parent : parents){
+ WOLFIRE_SIMPLIFY::ParentRecord pr = parent;
if(pr.weight > 0.0f){
int parent_vert = sm.old_vert_id[pr.id];
int parent_vert_index = parent_vert*3;
@@ -1514,29 +1503,28 @@ namespace {
}
}
}
- for(WOLFIRE_SIMPLIFY::ParentRecordList::iterator iter = parents.begin(); iter != parents.end(); ++iter){
- WOLFIRE_SIMPLIFY::ParentRecord pr = (*iter);
+ for(auto & parent : parents){
+ WOLFIRE_SIMPLIFY::ParentRecord pr = parent;
int parent_vert_index = pr.id*3;
for(int j=0; j<3; ++j){
sm_vertices[parent_vert_index+j] = total[j];
}
}
}
- for(int i=0, len=tex_parent.size(); i<len; ++i){
- WOLFIRE_SIMPLIFY::ParentRecordList parents = tex_parent[i];
+ for(auto parents : tex_parent){
float total[2];
- for(int j=0; j<2; ++j){
- total[j] = 0.0f;
+ for(float & j : total){
+ j = 0.0f;
}
- for(WOLFIRE_SIMPLIFY::ParentRecordList::iterator iter = parents.begin(); iter != parents.end(); ++iter){
- WOLFIRE_SIMPLIFY::ParentRecord pr = (*iter);
+ for(auto & parent : parents){
+ WOLFIRE_SIMPLIFY::ParentRecord pr = parent;
int parent_tex_index = sm.old_tex_id[pr.id]*2;
for(int j=0; j<2; ++j){
total[j] += base_model.tex_coords[parent_tex_index+j] * pr.weight;
}
}
- for(WOLFIRE_SIMPLIFY::ParentRecordList::iterator iter = parents.begin(); iter != parents.end(); ++iter){
- WOLFIRE_SIMPLIFY::ParentRecord pr = (*iter);
+ for(auto & parent : parents){
+ WOLFIRE_SIMPLIFY::ParentRecord pr = parent;
int parent_tex_index = pr.id*2;
for(int j=0; j<2; ++j){
sm_tex_coords[parent_tex_index+j] = total[j];
@@ -1629,11 +1617,11 @@ void RiggedObject::Load(const std::string& character_path, vec3 pos, SceneGraph*
anim_client.SetRetargeting(skeleton_path);
const mat4 &transform = GetTransform();
- for(unsigned i=0; i<skeleton_.physics_bones.size(); i++){
- if(!skeleton_.physics_bones[i].bullet_object){
+ for(auto & physics_bone : skeleton_.physics_bones){
+ if(!physics_bone.bullet_object){
continue;
}
- skeleton_.physics_bones[i].bullet_object->ApplyTransform(transform);
+ physics_bone.bullet_object->ApplyTransform(transform);
}
ik_offset.resize(skeleton_.physics_bones.size());
@@ -1656,9 +1644,9 @@ void RiggedObject::Load(const std::string& character_path, vec3 pos, SceneGraph*
}
const std::vector<MorphInfo> &morphs = char_ref->GetMorphs();
- for(unsigned i=0; i<morphs.size(); ++i){
+ for(const auto & morph : morphs){
MorphTarget mt;
- mt.Load(ofc->model_name, the_model_id, morphs[i].label, morphs[i].num_steps);
+ mt.Load(ofc->model_name, the_model_id, morph.label, morph.num_steps);
morph_targets.push_back(mt);
}
@@ -1708,15 +1696,14 @@ void RiggedObject::Load(const std::string& character_path, vec3 pos, SceneGraph*
bone_weight.clear();
bone_id.resize(sm.vertices.size()/3, 0.0f);
bone_weight.resize(sm.vertices.size()/3, 0.0f);
- for(int i=0, len=vert_parent.size(); i<len; ++i){
- WOLFIRE_SIMPLIFY::ParentRecordList parents = vert_parent[i];
+ for(auto parents : vert_parent){
float total[3];
bone_info_accumulate.clear();
- for(int j=0; j<3; ++j){
- total[j] = 0.0f;
+ for(float & j : total){
+ j = 0.0f;
}
- for(WOLFIRE_SIMPLIFY::ParentRecordList::iterator iter = parents.begin(); iter != parents.end(); ++iter){
- WOLFIRE_SIMPLIFY::ParentRecord pr = (*iter);
+ for(auto & parent : parents){
+ WOLFIRE_SIMPLIFY::ParentRecord pr = parent;
if(pr.weight > 0.0f){
int parent_vert = sm.old_vert_id[pr.id];
int parent_vert_index = parent_vert*3;
@@ -1756,18 +1743,16 @@ void RiggedObject::Load(const std::string& character_path, vec3 pos, SceneGraph*
}
// Normalize weights to add up to 1.0
float total_weight = 0.0f;
- for(int i=0,len=bone_info_accumulate.size(); i<len; ++i){
- BoneInfo &bi = bone_info_accumulate[i];
+ for(auto & bi : bone_info_accumulate){
total_weight += bi.weight;
}
if(total_weight != 0.0f){
- for(int i=0,len=bone_info_accumulate.size(); i<len; ++i){
- BoneInfo &bi = bone_info_accumulate[i];
+ for(auto & bi : bone_info_accumulate){
bi.weight /= total_weight;
}
}
- for(WOLFIRE_SIMPLIFY::ParentRecordList::iterator iter = parents.begin(); iter != parents.end(); ++iter){
- WOLFIRE_SIMPLIFY::ParentRecord pr = (*iter);
+ for(auto & parent : parents){
+ WOLFIRE_SIMPLIFY::ParentRecord pr = parent;
int parent_vert_index = pr.id*3;
for(int j=0; j<3; ++j){
sm.vertices[parent_vert_index+j] = total[j];
@@ -1778,21 +1763,20 @@ void RiggedObject::Load(const std::string& character_path, vec3 pos, SceneGraph*
}
}
}
- for(int i=0, len=tex_parent.size(); i<len; ++i){
- WOLFIRE_SIMPLIFY::ParentRecordList parents = tex_parent[i];
+ for(auto parents : tex_parent){
float total[2];
- for(int j=0; j<2; ++j){
- total[j] = 0.0f;
+ for(float & j : total){
+ j = 0.0f;
}
- for(WOLFIRE_SIMPLIFY::ParentRecordList::iterator iter = parents.begin(); iter != parents.end(); ++iter){
- WOLFIRE_SIMPLIFY::ParentRecord pr = (*iter);
+ for(auto & parent : parents){
+ WOLFIRE_SIMPLIFY::ParentRecord pr = parent;
int parent_tex_index = sm.old_tex_id[pr.id]*2;
for(int j=0; j<2; ++j){
total[j] += base_model.tex_coords[parent_tex_index+j] * pr.weight;
}
}
- for(WOLFIRE_SIMPLIFY::ParentRecordList::iterator iter = parents.begin(); iter != parents.end(); ++iter){
- WOLFIRE_SIMPLIFY::ParentRecord pr = (*iter);
+ for(auto & parent : parents){
+ WOLFIRE_SIMPLIFY::ParentRecord pr = parent;
int parent_tex_index = pr.id*2;
for(int j=0; j<2; ++j){
sm.tex_coords[parent_tex_index+j] = total[j];
@@ -1828,14 +1812,14 @@ void RiggedObject::Load(const std::string& character_path, vec3 pos, SceneGraph*
model.morph_transform_vec.resize(model_num_verts);
std::queue<MorphTarget*> queue;
- for(unsigned i=0; i<morph_targets.size(); ++i){
- queue.push(&morph_targets[i]);
+ for(auto & morph_target : morph_targets){
+ queue.push(&morph_target);
}
while(!queue.empty()){
MorphTarget& morph = (*queue.front());
queue.pop();
- for(unsigned i=0; i<morph.morph_targets.size(); ++i){
- queue.push(&morph.morph_targets[i]);
+ for(auto & morph_target : morph.morph_targets){
+ queue.push(&morph_target);
}
if(morph.model_id[0] != -1) {
morph.model_id[lod_index] = Models::Instance()->AddModel();
@@ -1846,8 +1830,8 @@ void RiggedObject::Load(const std::string& character_path, vec3 pos, SceneGraph*
morph_model.CopyVertCollapse(model);
}
}
- for(unsigned i=0; i<morph_targets.size(); ++i){
- morph_targets[i].CalcVertsModified(model_id[lod_index],lod_index);
+ for(auto & morph_target : morph_targets){
+ morph_target.CalcVertsModified(model_id[lod_index],lod_index);
}
}
SaveSimplificationCache(char_ref->path_);
@@ -1913,9 +1897,9 @@ bool RiggedObject::InHeadChain(BulletObject* obj) {
void RiggedObject::InvalidatedItem(ItemObjectScriptReader *invalidated) {
int weap_id = -1;
- for(AttachedItemList::iterator iter = attached_items.items.begin(); iter != attached_items.items.end(); ++iter) {
- if(&(iter->item) == invalidated){
- weap_id = (iter->item)->GetID();
+ for(auto & item : attached_items.items) {
+ if(&(item.item) == invalidated){
+ weap_id = (item.item)->GetID();
break;
}
}
@@ -2058,12 +2042,11 @@ void RiggedObject::SetItemAttachment(AttachedItem &stuck_item, AttachmentRef att
void RiggedObject::SheatheItem(int id, bool on_right){
AttachedItem *item_ptr = NULL;
- for(std::list<AttachedItem>::iterator iter = attached_items.items.begin();
- iter != attached_items.items.end(); ++iter)
+ for(auto & iter : attached_items.items)
{
- ItemObjectScriptReader& item = iter->item;
+ ItemObjectScriptReader& item = iter.item;
if(item->GetID() == id){
- item_ptr = &(*iter);
+ item_ptr = &iter;
}
}
if(!item_ptr){
@@ -2079,12 +2062,11 @@ void RiggedObject::SheatheItem(int id, bool on_right){
void RiggedObject::UnSheatheItem(int id, bool right_hand){
AttachedItem *item_ptr = NULL;
- for(std::list<AttachedItem>::iterator iter = attached_items.items.begin();
- iter != attached_items.items.end(); ++iter)
+ for(auto & iter : attached_items.items)
{
- ItemObjectScriptReader& item = iter->item;
+ ItemObjectScriptReader& item = iter.item;
if(item->GetID() == id){
- item_ptr = &(*iter);
+ item_ptr = &iter;
}
}
if(!item_ptr){
@@ -2108,10 +2090,9 @@ void RiggedObject::DetachAllItems(){
attached_items.RemoveAll();
char_anim.clear();
- for(std::list<AttachedItem>::iterator iter = stuck_items.items.begin();
- iter != stuck_items.items.end(); ++iter)
+ for(auto & item : stuck_items.items)
{
- iter->item->ActivatePhysics();
+ item.item->ActivatePhysics();
}
stuck_items.items.clear();
}
@@ -2162,8 +2143,7 @@ void RiggedObject::ApplyBoneMatricesToModel(bool old, int lod_level) {
const bool kMorphTargetsEnabled = true;
if(kMorphTargetsEnabled){
// Determine which morphs are active (have effective weight > 0)
- for(unsigned k=0; k<morph_targets.size(); ++k){
- MorphTarget& m_t = morph_targets[k];
+ for(auto & m_t : morph_targets){
if(online->IsClient() || m_t.weight > 0.0f ||
(m_t.anim_weight > 0.0f && m_t.script_weight_weight < 1.0f) ||
(m_t.script_weight > 0.0f && m_t.script_weight_weight > 0.0f))
@@ -2184,13 +2164,11 @@ void RiggedObject::ApplyBoneMatricesToModel(bool old, int lod_level) {
// Accumulate the effect of all active morphs
Models *mi = Models::Instance();
int vert_id, vert_id_index;
- for(unsigned k=0, len=active_morph_targets.size(); k<len; ++k){
- MorphTarget* morph = active_morph_targets[k];
-
+ for(auto morph : active_morph_targets){
const Model *morph_model = &mi->GetModel(morph->model_id[lod_level]);
const std::vector<int> &modified_tc = morph->modified_tc[lod_level];
- for(unsigned j=0, len2=modified_tc.size(); j<len2; ++j){
- vert_id = modified_tc[j];
+ for(int j : modified_tc){
+ vert_id = j;
vert_id_index = vert_id*2;
model->tex_transform_vec[vert_id] +=
vec2(morph_model->tex_coords[vert_id_index+0],
@@ -2199,8 +2177,8 @@ void RiggedObject::ApplyBoneMatricesToModel(bool old, int lod_level) {
}
const std::vector<int> &modified_vert = morph->modified_verts[lod_level];
- for(unsigned j=0,len2=modified_vert.size(); j<len2; ++j){
- vert_id = modified_vert[j];
+ for(int j : modified_vert){
+ vert_id = j;
vert_id_index = vert_id*3;
if (online->IsClient()) {
@@ -2290,9 +2268,9 @@ void MorphTarget::SetScriptWeight(float weight, float weight_weight) {
}
void RiggedObject::SetMTTargetWeight( const std::string &target_name, float weight, float weight_weight ) {
- for(unsigned i=0; i<morph_targets.size(); ++i){
- if(morph_targets[i].name == target_name){
- morph_targets[i].SetScriptWeight(weight, weight_weight);
+ for(auto & morph_target : morph_targets){
+ if(morph_target.name == target_name){
+ morph_target.SetScriptWeight(weight, weight_weight);
return;
}
}
@@ -2500,9 +2478,9 @@ void RiggedObject::FixDiscontinuity() {
Update(game_timer.timestep);
time_until_next_anim_update = 0;
Update(game_timer.timestep);
- for(unsigned i=0; i<skeleton_.physics_bones.size(); i++){
- if(skeleton_.physics_bones[i].bullet_object){
- skeleton_.physics_bones[i].bullet_object->FixDiscontinuity();
+ for(auto & physics_bone : skeleton_.physics_bones){
+ if(physics_bone.bullet_object){
+ physics_bone.bullet_object->FixDiscontinuity();
}
}
}
@@ -2510,8 +2488,8 @@ void RiggedObject::FixDiscontinuity() {
void RiggedObject::RefreshRagdoll()
{
if(!animated){
- for(unsigned i=0; i<skeleton_.physics_bones.size(); i++){
- BulletObject* b_object = skeleton_.physics_bones[i].bullet_object;
+ for(auto & physics_bone : skeleton_.physics_bones){
+ BulletObject* b_object = physics_bone.bullet_object;
if(!b_object){
continue;
}
@@ -2526,8 +2504,8 @@ void RiggedObject::Ragdoll(const vec3 &velocity) {
animated = false;
first_ragdoll_frame = true;
- for(unsigned i=0; i<skeleton_.physics_bones.size(); i++){
- BulletObject* b_object = skeleton_.physics_bones[i].bullet_object;
+ for(auto & physics_bone : skeleton_.physics_bones){
+ BulletObject* b_object = physics_bone.bullet_object;
if(!b_object){
continue;
}
@@ -2541,18 +2519,17 @@ void RiggedObject::Ragdoll(const vec3 &velocity) {
skeleton_.SetGFStrength(skeleton_.physics_joints[i], 0.0f);
}
- for(std::list<AttachedItem>::iterator iter = stuck_items.items.begin();
- iter != stuck_items.items.end(); ++iter)
+ for(auto & item : stuck_items.items)
{
- iter->item.ActivatePhysics();
- iter->item.AddConstraint(skeleton_.physics_bones[iter->bone_id].bullet_object);
+ item.item.ActivatePhysics();
+ item.item.AddConstraint(skeleton_.physics_bones[item.bone_id].bullet_object);
}
}
}
void RiggedObject::SetDamping(float amount){
- for(unsigned i=0; i<skeleton_.physics_bones.size(); i++){
- BulletObject* b_object = skeleton_.physics_bones[i].bullet_object;
+ for(auto & physics_bone : skeleton_.physics_bones){
+ BulletObject* b_object = physics_bone.bullet_object;
if(!b_object){
continue;
}
@@ -2562,10 +2539,9 @@ void RiggedObject::SetDamping(float amount){
}
}
if(amount >= 1.0f){
- for(std::list<AttachedItem>::iterator iter = stuck_items.items.begin();
- iter != stuck_items.items.end(); ++iter)
+ for(auto & item : stuck_items.items)
{
- iter->item->SleepPhysics();
+ item.item->SleepPhysics();
}
}
}
@@ -2573,10 +2549,9 @@ void RiggedObject::SetDamping(float amount){
void RiggedObject::UnRagdoll() {
//mat4 inv_transform = invert(GetTransformationMatrix());
if(!animated){
- for(std::list<AttachedItem>::iterator iter = stuck_items.items.begin();
- iter != stuck_items.items.end(); ++iter)
+ for(auto & item : stuck_items.items)
{
- iter->item.RemoveConstraint();
+ item.item.RemoveConstraint();
}
anim_client.Reset();
@@ -2594,12 +2569,12 @@ vec3 RiggedObject::GetAvgPosition()
{
vec3 total(0.0f);
int num_total = 0;
- for(unsigned i=0; i<skeleton_.physics_bones.size(); i++){
- if(!skeleton_.physics_bones[i].bullet_object){
+ for(auto & physics_bone : skeleton_.physics_bones){
+ if(!physics_bone.bullet_object){
continue;
}
num_total++;
- total += skeleton_.physics_bones[i].bullet_object->GetPosition();
+ total += physics_bone.bullet_object->GetPosition();
}
total /= (float)num_total;
@@ -2611,14 +2586,14 @@ vec3 RiggedObject::GetAvgVelocity()
{
vec3 total(0.0f);
float divisor = 0.0f;
- for(unsigned i=0; i<skeleton_.physics_bones.size(); i++){
- if(!skeleton_.physics_bones[i].bullet_object ||
- !skeleton_.physics_bones[i].bullet_object->linked){
+ for(auto & physics_bone : skeleton_.physics_bones){
+ if(!physics_bone.bullet_object ||
+ !physics_bone.bullet_object->linked){
continue;
}
- const float mass = skeleton_.physics_bones[i].bullet_object->GetMass();
+ const float mass = physics_bone.bullet_object->GetMass();
divisor += mass;
- total += skeleton_.physics_bones[i].bullet_object->GetLinearVelocity() * mass;
+ total += physics_bone.bullet_object->GetLinearVelocity() * mass;
}
total /= divisor;
@@ -2629,14 +2604,14 @@ vec3 RiggedObject::GetAvgVelocity()
vec3 RiggedObject::GetAvgAngularVelocity() {
vec3 total(0.0f);
float divisor = 0.0f;
- for(unsigned i=0; i<skeleton_.physics_bones.size(); i++){
- if(!skeleton_.physics_bones[i].bullet_object ||
- !skeleton_.physics_bones[i].bullet_object->linked){
+ for(auto & physics_bone : skeleton_.physics_bones){
+ if(!physics_bone.bullet_object ||
+ !physics_bone.bullet_object->linked){
continue;
}
- total += skeleton_.physics_bones[i].bullet_object->GetAngularVelocity() *
- skeleton_.physics_bones[i].bullet_object->GetMass();
- divisor += skeleton_.physics_bones[i].bullet_object->GetMass();
+ total += physics_bone.bullet_object->GetAngularVelocity() *
+ physics_bone.bullet_object->GetMass();
+ divisor += physics_bone.bullet_object->GetMass();
}
total /= divisor;
@@ -2648,11 +2623,11 @@ vec3 RiggedObject::GetAvgAngularVelocity() {
quaternion RiggedObject::GetAvgRotation()
{
quaternion total;
- for(unsigned i=0; i<skeleton_.physics_bones.size(); i++){
- if(!skeleton_.physics_bones[i].bullet_object){
+ for(auto & physics_bone : skeleton_.physics_bones){
+ if(!physics_bone.bullet_object){
continue;
}
- const PhysicsBone& bone = skeleton_.physics_bones[i];
+ const PhysicsBone& bone = physics_bone;
mat4 rotation = bone.bullet_object->GetRotation() *
invert(bone.initial_rotation);
total += QuaternionFromMat4(rotation) * bone.bullet_object->GetMass();
@@ -2677,18 +2652,18 @@ vec3 RiggedObject::GetIKTargetPosition( const std::string &target_name )
}
float RiggedObject::GetIKWeight( const std::string &target_name ) {
- for(unsigned i=0; i<blended_bone_paths.size(); ++i){
- if(blended_bone_paths[i].ik_bone.label == target_name){
- return blended_bone_paths[i].weight;
+ for(auto & blended_bone_path : blended_bone_paths){
+ if(blended_bone_path.ik_bone.label == target_name){
+ return blended_bone_path.weight;
}
}
return 0.0f;
}
BoneTransform GetIKTransform( RiggedObject* rigged_object, const std::string &target_name ) {
- for(unsigned i=0; i<rigged_object->blended_bone_paths.size(); ++i){
- if(rigged_object->blended_bone_paths[i].ik_bone.label == target_name){
- return rigged_object->blended_bone_paths[i].transform;
+ for(auto & blended_bone_path : rigged_object->blended_bone_paths){
+ if(blended_bone_path.ik_bone.label == target_name){
+ return blended_bone_path.transform;
}
}
BoneTransform identity;
@@ -2696,9 +2671,9 @@ BoneTransform GetIKTransform( RiggedObject* rigged_object, const std::string &ta
}
mat4 GetUnmodifiedIKTransform( RiggedObject* rigged_object, const std::string &target_name ) {
- for(unsigned i=0; i<rigged_object->blended_bone_paths.size(); ++i){
- if(rigged_object->blended_bone_paths[i].ik_bone.label == target_name){
- return rigged_object->blended_bone_paths[i].unmodified_transform.GetMat4();
+ for(auto & blended_bone_path : rigged_object->blended_bone_paths){
+ if(blended_bone_path.ik_bone.label == target_name){
+ return blended_bone_path.unmodified_transform.GetMat4();
}
}
mat4 identity;
@@ -2706,9 +2681,9 @@ mat4 GetUnmodifiedIKTransform( RiggedObject* rigged_object, const std::string &t
}
vec3 RiggedObject::GetIKTargetAnimPosition( const std::string &target_name ) {
- for(unsigned i=0; i<blended_bone_paths.size(); ++i){
- if(blended_bone_paths[i].ik_bone.label == target_name){
- int target_bone = blended_bone_paths[i].ik_bone.bone_path.back();
+ for(auto & blended_bone_path : blended_bone_paths){
+ if(blended_bone_path.ik_bone.label == target_name){
+ int target_bone = blended_bone_path.ik_bone.bone_path.back();
return unmodified_transforms[target_bone].origin;
}
}
@@ -2753,8 +2728,7 @@ void MorphTarget::CalcVertsModified(int base_model_id, int lod_level) {
} else {
verts_modified[lod_level].resize(model_num_verts, false);
tc_modified[lod_level].resize(model_num_verts, false);
- for(unsigned i=0; i<morph_targets.size(); ++i){
- MorphTarget &mt = morph_targets[i];
+ for(auto & mt : morph_targets){
mt.CalcVertsModified(base_model_id, lod_level);
for(int j=0; j<model_num_verts; ++j){
if(mt.verts_modified[lod_level][j]){
@@ -2795,8 +2769,8 @@ void MorphTarget::Load(const std::string &base_model_name,
script_weight_weight = 0.0f;
checksum = 0;
- for(int i=0; i<4; ++i){
- model_id[i] = -1;
+ for(int & i : model_id){
+ i = -1;
}
if(parts == 1){
@@ -2820,11 +2794,11 @@ void MorphTarget::Load(const std::string &base_model_name,
} else {
model_id[0] = Models::Instance()->CopyModel(base_model_id);
Model& model = Models::Instance()->GetModel(model_id[0]);
- for(int i=0, len=(int)model.vertices.size(); i<len; ++i){
- model.vertices[i] = 0.0f;
+ for(float & vertex : model.vertices){
+ vertex = 0.0f;
}
- for(int i=0, len=(int)model.tex_coords.size(); i<len; ++i){
- model.tex_coords[i] = 0.0f;
+ for(float & tex_coord : model.tex_coords){
+ tex_coord = 0.0f;
}
model_copy[0] = true;
for(int i=0; i<parts; ++i){
@@ -2877,20 +2851,20 @@ void MorphTarget::PreDrawCamera(int num, int progress, int lod_level, uint32_t c
if(new_weight == 0.0f || new_weight == 1.0f){
Model *the_model = (new_weight == 0.0f)?&morph_model_start:&morph_model_end;
- for(unsigned j=0; j<modified_verts[lod_level].size(); ++j){
- const int index = modified_verts[lod_level][j]*3;
+ for(int j : modified_verts[lod_level]){
+ const int index = j*3;
model.vertices[index+0] = the_model->vertices[index+0];
model.vertices[index+1] = the_model->vertices[index+1];
model.vertices[index+2] = the_model->vertices[index+2];
}
- for(unsigned j=0; j<modified_tc[lod_level].size(); ++j){
- const int tc_index = modified_tc[lod_level][j]*2;
+ for(int j : modified_tc[lod_level]){
+ const int tc_index = j*2;
model.tex_coords[tc_index+0] = the_model->tex_coords[tc_index+0];
model.tex_coords[tc_index+1] = the_model->tex_coords[tc_index+1];
}
} else {
- for(unsigned j=0; j<modified_verts[lod_level].size(); ++j){
- const int index = modified_verts[lod_level][j]*3;
+ for(int j : modified_verts[lod_level]){
+ const int index = j*3;
model.vertices[index+0] = morph_model_start.vertices[index+0]*(1.0f-new_weight);
model.vertices[index+1] = morph_model_start.vertices[index+1]*(1.0f-new_weight);
model.vertices[index+2] = morph_model_start.vertices[index+2]*(1.0f-new_weight);
@@ -2898,8 +2872,8 @@ void MorphTarget::PreDrawCamera(int num, int progress, int lod_level, uint32_t c
model.vertices[index+1] += morph_model_end.vertices[index+1]*new_weight;
model.vertices[index+2] += morph_model_end.vertices[index+2]*new_weight;
}
- for(unsigned j=0; j<modified_tc[lod_level].size(); ++j){
- const int tc_index = modified_tc[lod_level][j]*2;
+ for(int j : modified_tc[lod_level]){
+ const int tc_index = j*2;
model.tex_coords[tc_index+0] = morph_model_start.tex_coords[tc_index+0]*(1.0f-new_weight);
model.tex_coords[tc_index+1] = morph_model_start.tex_coords[tc_index+1]*(1.0f-new_weight);
model.tex_coords[tc_index+0] += morph_model_end.tex_coords[tc_index+0]*new_weight;
@@ -2934,8 +2908,8 @@ void MorphTarget::Dispose() {
Models::Instance()->DeleteModel(model_id[i]);
}
}
- for(unsigned i=0; i<morph_targets.size(); ++i){
- morph_targets[i].Dispose();
+ for(auto & morph_target : morph_targets){
+ morph_target.Dispose();
}
}
@@ -3013,11 +2987,11 @@ mat4 RiggedObject::GetBoneRotation( int bone ) {
}
void RiggedObject::SetSkeletonOwner( Object* owner ) {
- for(unsigned i=0; i<skeleton_.physics_bones.size(); ++i){
- if(!skeleton_.physics_bones[i].bullet_object){
+ for(auto & physics_bone : skeleton_.physics_bones){
+ if(!physics_bone.bullet_object){
continue;
}
- skeleton_.physics_bones[i].bullet_object->owner_object = owner;
+ physics_bone.bullet_object->owner_object = owner;
}
}
@@ -3109,18 +3083,18 @@ vec3 RiggedObject::GetIKChainPos( const std::string &target_name, int which )
void RiggedObject::EnableSleep()
{
- for(unsigned i=0; i<skeleton_.physics_bones.size(); ++i){
- if(skeleton_.physics_bones[i].bullet_object){
- skeleton_.physics_bones[i].bullet_object->CanSleep();
+ for(auto & physics_bone : skeleton_.physics_bones){
+ if(physics_bone.bullet_object){
+ physics_bone.bullet_object->CanSleep();
}
}
}
void RiggedObject::DisableSleep()
{
- for(unsigned i=0; i<skeleton_.physics_bones.size(); ++i){
- if(skeleton_.physics_bones[i].bullet_object){
- skeleton_.physics_bones[i].bullet_object->NoSleep();
+ for(auto & physics_bone : skeleton_.physics_bones){
+ if(physics_bone.bullet_object){
+ physics_bone.bullet_object->NoSleep();
}
}
}
@@ -3136,11 +3110,11 @@ void RiggedObject::HandleLipSyncMorphTargets(float timestep) {
const std::map<std::string, float> &mw = lipsync_reader.GetMorphWeights();
std::map<std::string, float>::const_iterator iter;
for(iter = mw.begin(); iter != mw.end(); ++iter){
- for(unsigned i=0; i<morph_targets.size(); ++i){
- if(morph_targets[i].name == iter->first){
- morph_targets[i].script_weight =
- mix(morph_targets[i].script_weight, iter->second, 0.5f);
- morph_targets[i].script_weight_weight = 1.0f;
+ for(auto & morph_target : morph_targets){
+ if(morph_target.name == iter->first){
+ morph_target.script_weight =
+ mix(morph_target.script_weight, iter->second, 0.5f);
+ morph_target.script_weight_weight = 1.0f;
break;
}
}
@@ -3148,9 +3122,9 @@ void RiggedObject::HandleLipSyncMorphTargets(float timestep) {
lipsync_reader.Update(timestep);
if(!lipsync_reader.valid()){
for(iter = mw.begin(); iter != mw.end(); ++iter){
- for(unsigned i=0; i<morph_targets.size(); ++i){
- if(morph_targets[i].name == iter->first){
- morph_targets[i].script_weight_weight = 0.0f;
+ for(auto & morph_target : morph_targets){
+ if(morph_target.name == iter->first){
+ morph_target.script_weight_weight = 0.0f;
break;
}
}
@@ -3210,10 +3184,9 @@ void RiggedObject::SetCharAnim( const std::string &path, char flags, const std::
const float _item_blend_fade_speed = 5.0f;
void RiggedObject::CheckItemAnimBlends(const std::string &path, char flags) {
anim_client.ClearBlendAnimation();
- for(std::list<AttachedItem>::iterator iter = attached_items.items.begin();
- iter != attached_items.items.end(); ++iter)
+ for(auto & iter : attached_items.items)
{
- ItemObjectScriptReader& item = iter->item;
+ ItemObjectScriptReader& item = iter.item;
if(item->item_ref()->HasAnimBlend(path) && item->state() == ItemObject::kWielded){
const std::string &a_path = item->item_ref()->GetAnimBlend(path);
anim_client.SetBlendAnimation(a_path);
@@ -3255,8 +3228,8 @@ void RiggedObject::MPCutPlane(const vec3 & normal, const vec3 & pos, const vec3
}
else {
//blood_surface.AddBloodToTriangles(hit_list);
- for (unsigned i = 0; i < hit_list.size(); ++i) {
- GetTransformedTri(hit_list[i], mp_points);
+ for (int i : hit_list) {
+ GetTransformedTri(i, mp_points);
if (dot(cross(mp_points[1] - mp_points[0], mp_points[2] - mp_points[0]), dir) > 0.0f) {
continue;
}
@@ -3270,8 +3243,8 @@ void RiggedObject::MPCutPlane(const vec3 & normal, const vec3 & pos, const vec3
}
vec2 tex_points[3];
for (unsigned j = 0; j < 3; ++j) {
- tex_points[j][0] = model->tex_coords[model->faces[hit_list[i] * 3 + j] * 2 + 0];
- tex_points[j][1] = model->tex_coords[model->faces[hit_list[i] * 3 + j] * 2 + 1];
+ tex_points[j][0] = model->tex_coords[model->faces[i * 3 + j] * 2 + 0];
+ tex_points[j][1] = model->tex_coords[model->faces[i * 3 + j] * 2 + 1];
}
@@ -3297,13 +3270,13 @@ void RiggedObject::MPCutPlane(const vec3 & normal, const vec3 & pos, const vec3
if (type == _light || RangedRandomFloat(0.0f, 1.0f) < 0.6f) {
vec2 bleed_point = mix(tex_intersect_points[0], tex_intersect_points[1], 0.5f);
vec3 coords = bary_coords(bleed_point, tex_points[0], tex_points[1], tex_points[2]);
- blood_surface.CreateDripInTri(hit_list[i], coords, RangedRandomFloat(0.1f, 1.0f), RangedRandomFloat(0.0f, 1.0f), true, SurfaceWalker::BLOOD);
+ blood_surface.CreateDripInTri(i, coords, RangedRandomFloat(0.1f, 1.0f), RangedRandomFloat(0.0f, 1.0f), true, SurfaceWalker::BLOOD);
}
if (type == _heavy || RangedRandomFloat(0.0f, 1.0f) < 0.2f) {
vec2 bleed_point = mix(tex_intersect_points[0], tex_intersect_points[1], 0.5f);
vec3 coords = bary_coords(bleed_point, tex_points[0], tex_points[1], tex_points[2]);
- blood_surface.CreateDripInTri(hit_list[i], coords, RangedRandomFloat(0.1f, 0.5f), RangedRandomFloat(0.0f, 10.0f), true, SurfaceWalker::BLOOD);
+ blood_surface.CreateDripInTri(i, coords, RangedRandomFloat(0.1f, 0.5f), RangedRandomFloat(0.0f, 10.0f), true, SurfaceWalker::BLOOD);
}
//dot(offset+dir*time, normal) = 0.0f
@@ -3382,11 +3355,11 @@ void UpdateStuckItem(AttachedItem& stuck_item, const Skeleton &skeleton, bool an
}
void RiggedObject::UpdateAttachedItems() {
- for(AttachedItemList::iterator iter = attached_items.items.begin(); iter != attached_items.items.end(); ++iter){
- UpdateAttachedItem(*iter, skeleton_, model_char_scale, weapon_offset, weap_anim_info_map, weapon_offset_retarget);
+ for(auto & item : attached_items.items){
+ UpdateAttachedItem(item, skeleton_, model_char_scale, weapon_offset, weap_anim_info_map, weapon_offset_retarget);
}
- for(AttachedItemList::iterator iter = stuck_items.items.begin(); iter != stuck_items.items.end(); ++iter) {
- UpdateStuckItem(*iter, skeleton_, animated);
+ for(auto & item : stuck_items.items) {
+ UpdateStuckItem(item, skeleton_, animated);
}
}
@@ -3410,8 +3383,8 @@ void RiggedObject::CutPlane( const vec3 &normal, const vec3 &pos, const vec3 &di
GetTransformedTri(i, points);
pos_side = false;
neg_side = false;
- for (unsigned j = 0; j < 3; ++j) {
- if (dot(points[j] - pos, normal) < 0.0f) {
+ for (const auto & point : points) {
+ if (dot(point - pos, normal) < 0.0f) {
neg_side = true;
}
else {
@@ -3439,8 +3412,8 @@ void RiggedObject::CutPlane( const vec3 &normal, const vec3 &pos, const vec3 &di
}
} else {
//blood_surface.AddBloodToTriangles(hit_list);
- for(unsigned i=0; i<hit_list.size(); ++i){
- GetTransformedTri(hit_list[i], points);
+ for(int i : hit_list){
+ GetTransformedTri(i, points);
if(dot(cross(points[1] - points[0], points[2] - points[0]), dir) > 0.0f){
continue;
}
@@ -3454,8 +3427,8 @@ void RiggedObject::CutPlane( const vec3 &normal, const vec3 &pos, const vec3 &di
}
vec2 tex_points[3];
for(unsigned j=0; j<3; ++j){
- tex_points[j][0] = model->tex_coords[model->faces[hit_list[i]*3+j]*2+0];
- tex_points[j][1] = model->tex_coords[model->faces[hit_list[i]*3+j]*2+1];
+ tex_points[j][0] = model->tex_coords[model->faces[i*3+j]*2+0];
+ tex_points[j][1] = model->tex_coords[model->faces[i*3+j]*2+1];
}
vec2 tex_intersect_points[2];
vec3 intersect_points[2];
@@ -3480,7 +3453,7 @@ void RiggedObject::CutPlane( const vec3 &normal, const vec3 &pos, const vec3 &di
vec3 coords = bary_coords(bleed_point, tex_points[0], tex_points[1], tex_points[2]);
//LOGI << "BLEED POINT " << bleed_point << " coords " << coords << std::endl;
- blood_surface.CreateDripInTri(hit_list[i], coords, RangedRandomFloat(0.1f,1.0f), RangedRandomFloat(0.0f,1.0f), true, SurfaceWalker::BLOOD);
+ blood_surface.CreateDripInTri(i, coords, RangedRandomFloat(0.1f,1.0f), RangedRandomFloat(0.0f,1.0f), true, SurfaceWalker::BLOOD);
}
if(type == _heavy || RangedRandomFloat(0.0f,1.0f)<0.2f){
@@ -3488,7 +3461,7 @@ void RiggedObject::CutPlane( const vec3 &normal, const vec3 &pos, const vec3 &di
vec3 coords = bary_coords(bleed_point, tex_points[0], tex_points[1], tex_points[2]);
//LOGI << "BLEED POINT " << bleed_point << " coords " << coords << std::endl;
- blood_surface.CreateDripInTri(hit_list[i], coords, RangedRandomFloat(0.1f,0.5f), RangedRandomFloat(0.0f,10.0f), true, SurfaceWalker::BLOOD);
+ blood_surface.CreateDripInTri(i, coords, RangedRandomFloat(0.1f,0.5f), RangedRandomFloat(0.0f,10.0f), true, SurfaceWalker::BLOOD);
}
//dot(offset+dir*time, normal) = 0.0f
@@ -3540,9 +3513,9 @@ void RiggedObject::Stab( const vec3 &pos, const vec3 &dir, int type, int depth )
for(int i=0, len=model->faces.size()/3; i<len; ++i){
close_enough = false;
GetTransformedTri(i, points);
- for(unsigned j=0; j<3; ++j){
- points[j] -= dir * dot(dir, points[j] - pos);
- if(distance_squared(points[j], pos) < _stab_threshold){
+ for(auto & point : points){
+ point -= dir * dot(dir, point - pos);
+ if(distance_squared(point, pos) < _stab_threshold){
close_enough = true;
}
}
@@ -3563,11 +3536,11 @@ void RiggedObject::Stab( const vec3 &pos, const vec3 &dir, int type, int depth )
vec3 start = pos - dir * 1000.0f;
vec3 end = pos + dir * 1000.0f;
vec3 intersect;
- for(unsigned i=0; i<hit_list.size(); ++i){
- GetTransformedTri(hit_list[i], points);
+ for(int i : hit_list){
+ GetTransformedTri(i, points);
if(LineFacet(start, end, points[0], points[1], points[2], &intersect)){
for(unsigned j=0; j<10; ++j){
- blood_surface.CreateDripInTri(hit_list[i], vec3(0.333f,0.333f,0.333f), RangedRandomFloat(0.1f,1.0f), RangedRandomFloat(0.0f,10.0f), true, SurfaceWalker::BLOOD);
+ blood_surface.CreateDripInTri(i, vec3(0.333f,0.333f,0.333f), RangedRandomFloat(0.1f,1.0f), RangedRandomFloat(0.0f,10.0f), true, SurfaceWalker::BLOOD);
}
}
}
@@ -3614,8 +3587,8 @@ void RiggedObject::AddWaterCube( const mat4 &transform ) {
std::vector<mat4> fire_decal_matrix;
std::vector<mat4> water_decal_matrix;
- for(int i=0, len=scenegraph_->decal_objects_.size(); i<len; ++i){
- DecalObject* obj = (DecalObject*)scenegraph_->decal_objects_[i];
+ for(auto & decal_object : scenegraph_->decal_objects_){
+ DecalObject* obj = (DecalObject*)decal_object;
if(obj->decal_file_ref->special_type == 3){
fire_decal_matrix.push_back(obj->GetTransform());
}
@@ -3676,12 +3649,12 @@ void RiggedObject::AddWaterCube( const mat4 &transform ) {
}
void RiggedObject::UpdateCollisionObjects() {
- for(unsigned i=0; i<skeleton_.physics_bones.size(); ++i){
- BulletObject* cbo = skeleton_.physics_bones[i].col_bullet_object;
+ for(auto & physics_bone : skeleton_.physics_bones){
+ BulletObject* cbo = physics_bone.col_bullet_object;
if(!cbo){
continue;
}
- cbo->SetTransform(skeleton_.physics_bones[i].bullet_object->GetTransform());
+ cbo->SetTransform(physics_bone.bullet_object->GetTransform());
cbo->UpdateTransform();
}
skeleton_.UpdateCollisionWorldAABB();
@@ -3753,8 +3726,8 @@ static int ASGetBonePoint(Skeleton* skeleton, int which_bone, int which_point){
}
static void ASAddVelocity(Skeleton* skeleton, const vec3& vel){
- for(int bone_index=0, num_bones=skeleton->physics_bones.size(); bone_index<num_bones; ++bone_index){
- BulletObject* bullet_object = skeleton->physics_bones[bone_index].bullet_object;
+ for(auto & physics_bone : skeleton->physics_bones){
+ BulletObject* bullet_object = physics_bone.bullet_object;
if(bullet_object){
bullet_object->AddLinearVelocity(vel);
}
@@ -3787,8 +3760,8 @@ void RotateBonesToMatchVec(RiggedObject* rigged_object, const vec3& a, const vec
static void TransformAllFrameMats(RiggedObject* rigged_object, const BoneTransform &transform) {
std::vector<BoneTransform> &mats = rigged_object->animation_frame_bone_matrices;
- for(int i=0, len=mats.size(); i<len; ++i){
- mats[i] = transform * mats[i];
+ for(auto & mat : mats){
+ mat = transform * mat;
}
}
@@ -3863,8 +3836,8 @@ static CScriptArray *ASGetConvexHullPoints(Skeleton* skeleton, int bone){
CScriptArray *array = CScriptArray::Create(arrayType, (asUINT)0);
array->Reserve(points.size());
- for(int i=0, len=points.size(); i<len; ++i) {
- array->InsertLast(&points[i]);
+ for(float & point : points) {
+ array->InsertLast(&point);
}
return array;
}
@@ -4026,8 +3999,8 @@ void RiggedObject::SaveSimplificationCache(const std::string &path) {
}
unsigned short checksum = skeleton_.skeleton_asset_ref->checksum()+
Models::Instance()->GetModel(model_id[0]).checksum;
- for(int i=0, len=morph_targets.size(); i<len; ++i){
- checksum += morph_targets[i].checksum;
+ for(auto & morph_target : morph_targets){
+ checksum += morph_target.checksum;
}
fwrite(&simp_cache_vers, sizeof(int), 1, file);
fwrite(&checksum, sizeof(unsigned short), 1, file);
@@ -4050,14 +4023,14 @@ void RiggedObject::SaveSimplificationCache(const std::string &path) {
}
std::queue<MorphTarget*> queue;
- for(unsigned i=0; i<morph_targets.size(); ++i){
- queue.push(&morph_targets[i]);
+ for(auto & morph_target : morph_targets){
+ queue.push(&morph_target);
}
while(!queue.empty()){
MorphTarget& morph = (*queue.front());
queue.pop();
- for(unsigned i=0; i<morph.morph_targets.size(); ++i){
- queue.push(&morph.morph_targets[i]);
+ for(auto & morph_target : morph.morph_targets){
+ queue.push(&morph_target);
}
for(unsigned i=1; i<4; ++i){
const Model& model = Models::Instance()->GetModel(morph.model_id[i]);
@@ -4102,8 +4075,8 @@ bool RiggedObject::LoadSimplificationCache(const std::string& path) {
}
unsigned short checksum = skeleton_.skeleton_asset_ref->checksum()+
Models::Instance()->GetModel(model_id[0]).checksum;
- for(int i=0, len=morph_targets.size(); i<len; ++i){
- checksum += morph_targets[i].checksum;
+ for(auto & morph_target : morph_targets){
+ checksum += morph_target.checksum;
}
unsigned short file_checksum;
fread(&file_checksum, sizeof(unsigned short), 1, file);
@@ -4145,14 +4118,14 @@ bool RiggedObject::LoadSimplificationCache(const std::string& path) {
}
std::queue<MorphTarget*> queue;
- for(unsigned i=0; i<morph_targets.size(); ++i){
- queue.push(&morph_targets[i]);
+ for(auto & morph_target : morph_targets){
+ queue.push(&morph_target);
}
while(!queue.empty()){
MorphTarget& morph = (*queue.front());
queue.pop();
- for(unsigned i=0; i<morph.morph_targets.size(); ++i){
- queue.push(&morph.morph_targets[i]);
+ for(auto & morph_target : morph.morph_targets){
+ queue.push(&morph_target);
}
for(unsigned i=1; i<4; ++i){
morph.model_id[i] = Models::Instance()->AddModel();
@@ -4237,8 +4210,8 @@ void RiggedObject::CreateFurModel( int model_id, int fur_model_id ) {
// verts
{
std::vector<bool> included(fur_ref_model.vertices.size()/3, false);
- for(unsigned i=0; i<fur_model.faces.size(); ++i){
- included[fur_model.faces[i]] = true;
+ for(unsigned int face : fur_model.faces){
+ included[face] = true;
}
int remap_index = 0;
@@ -4253,8 +4226,8 @@ void RiggedObject::CreateFurModel( int model_id, int fur_model_id ) {
fur_model.vertices.push_back(fur_ref_model.vertices[vert_index+2] - base_model.old_center[2]);
}
}
- for(unsigned i=0; i<fur_model.faces.size(); ++i){
- fur_model.faces[i] = remapped[fur_model.faces[i]];
+ for(unsigned int & face : fur_model.faces){
+ face = remapped[face];
}
}
@@ -4279,8 +4252,8 @@ void RiggedObject::CreateFurModel( int model_id, int fur_model_id ) {
for(int i=0, len=fur_model.vertices.size()/3; i<len; ++i){
vert_dup[i] = fur_model_points[fur_verts[i]].front();
}
- for(unsigned i=0; i<fur_model.faces.size(); ++i){
- fur_model.faces[i] = vert_dup[fur_model.faces[i]];
+ for(unsigned int & face : fur_model.faces){
+ face = vert_dup[face];
}
}
@@ -4713,20 +4686,18 @@ void RiggedObject::UnStickItem( int id ) {
std::vector<ItemRef> RiggedObject::GetWieldedItemRefs() const {
int num_wielded = 0;
- for(std::list<AttachedItem>::const_iterator iter = attached_items.items.begin();
- iter != attached_items.items.end(); ++iter)
+ for(const auto & iter : attached_items.items)
{
- const ItemObjectScriptReader& item = iter->item;
+ const ItemObjectScriptReader& item = iter.item;
if(item->GetID() == primary_weapon_id){
++num_wielded;
}
}
std::vector<ItemRef> wielded_item_refs(num_wielded);
num_wielded = 0;
- for(std::list<AttachedItem>::const_iterator iter = attached_items.items.begin();
- iter != attached_items.items.end(); ++iter)
+ for(const auto & iter : attached_items.items)
{
- const ItemObjectScriptReader& item = iter->item;
+ const ItemObjectScriptReader& item = iter.item;
if(item->GetID() == primary_weapon_id){
wielded_item_refs[num_wielded++] = item->item_ref();
}
@@ -4783,11 +4754,10 @@ void RiggedObject::AvailableItemSlots( const ItemRef& item_ref, AttachmentSlotLi
DrawAvailableAttachmentSlots(item_ref, _at_sheathe, skeleton_, list);
}
const std::list<std::string> &attachment_list = item_ref->GetAttachmentList();
- for(std::list<std::string>::const_iterator iter = attachment_list.begin();
- iter != attachment_list.end(); ++iter)
+ for(const auto & iter : attachment_list)
{
//AttachmentRef attachment_ref = Attachments::Instance()->ReturnRef((*iter));
- AttachmentRef attachment_ref = Engine::Instance()->GetAssetManager()->LoadSync<Attachment>((*iter));
+ AttachmentRef attachment_ref = Engine::Instance()->GetAssetManager()->LoadSync<Attachment>(iter);
DrawAvailableAttachment(attachment_ref, skeleton_, false, list);
if(attachment_ref->mirror_allowed){
DrawAvailableAttachment(attachment_ref, skeleton_, true, list);
@@ -4911,8 +4881,8 @@ void AttachedItems::Remove( int id ) {
}
void AttachedItems::RemoveAll() {
- for(std::list<AttachedItem>::iterator iter = items.begin(); iter != items.end(); ++iter) {
- iter->item->ActivatePhysics();
+ for(auto & item : items) {
+ item.item->ActivatePhysics();
}
items.clear();
}