Changeset 539 for trunk/src/engine/model_manager.cc
- Timestamp:
- 01/24/17 17:55:00 (8 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/engine/model_manager.cc
r529 r539 18 18 19 19 model* gm = new model; 20 gm->flags = table .get< flags<32> >( "flags");21 gm->attach = table .get_string_hash_64( "attach");22 gm->root.set_position( table .get<vec3>( "root_position", vec3()) );23 gm->root.set_orientation( vec4_to_quat( table .get<vec4>( "root_orientation",vec4(0.0f,0.0f,0.0f,1.0f) ) ) );20 gm->flags = table["flags"].as< flags<32> >(); 21 gm->attach = table["attach"].get_shash64(); 22 gm->root.set_position( table["root_position"].as<vec3>() ); 23 gm->root.set_orientation( vec4_to_quat( table["root_orientation"].as<vec4>( vec4(0.0f,0.0f,0.0f,1.0f) ) ) ); 24 24 25 25 resource< mesh_data > def_data; 26 if ( table .is_string( "path") )27 def_data = m_rm->get< mesh_data >( table .get_string128( "path") );26 if ( table["path"].is_string() ) 27 def_data = m_rm->get< mesh_data >( table["path"].get_string128() ); 28 28 29 if ( table .is_string( "ragdoll") )30 gm->ragdoll_id = table .get_string32( "ragdoll");29 if ( table["ragdoll"].is_string() ) 30 gm->ragdoll_id = table["ragdoll"].get_string32(); 31 31 32 32 if ( table.has_field( "animator" ) ) 33 33 { 34 gm->animator = m_rm->get< animator_data >( table .get_string( "animator") );34 gm->animator = m_rm->get< animator_data >( table["animator"].get_string() ); 35 35 pose_data_set* poses = gm->animator.lock()->poses; 36 36 if ( !def_data || !def_data.lock()->node_data ) … … 42 42 if ( table.has_field( "phx_mesh" ) ) 43 43 { 44 nv::string128 cpath( table .get_string128( "phx_mesh") );44 nv::string128 cpath( table["phx_mesh"].get_string128() ); 45 45 gm->phx_mesh = m_mesh_datas->get_path( cpath, def_data ); 46 46 } 47 47 48 if ( table .is_table( "model") )48 if ( table["model"].is_table() ) 49 49 { 50 50 lua::table_guard model_table( table, "model" ); … … 66 66 sint16 attach_id = -1; 67 67 68 if ( table .is_string( "material") )68 if ( table["material"].is_string() ) 69 69 { 70 nv::string128 mat_id( table .get_string128( "material") );70 nv::string128 mat_id( table["material"].get_string128() ); 71 71 cmaterial = m_rm->get< material >( mat_id ); 72 72 if ( !cmaterial ) … … 74 74 } 75 75 76 if ( table .is_string( "tag") )77 node->tag = table .get_string32( "tag");76 if ( table["tag"].is_string() ) 77 node->tag = table["tag"].get_string32(); 78 78 79 79 if ( table.has_field( "path" ) ) 80 80 { 81 nv::string128 cpath( table .get_string128( "path") );81 nv::string128 cpath( table["path"].get_string128() ); 82 82 nv::data_node_info info; 83 83 cmesh = m_mesh_datas->get_path( cpath, def_data, &info ); … … 86 86 87 87 if ( table.has_field( "phx_hextents" ) ) 88 node->phx_hextents = table .get<vec3>( "phx_hextents", vec3());88 node->phx_hextents = table["phx_hextents"].as<vec3>(); 89 89 if ( table.has_field( "phx_offset" ) ) 90 node->phx_offset = table .get<vec3>( "phx_offset", vec3());90 node->phx_offset = table["phx_offset"].as<vec3>(); 91 91 if ( table.has_field( "phx_mass" ) ) 92 node->phx_mass = table .get<float>( "phx_mass", 0.0f);92 node->phx_mass = table["phx_mass"].as<float>( 0.0f ); 93 93 if ( table.has_field( "phx_mass" ) ) 94 node->phx_shape = nv::phx_shape( table .get<int>( "phx_shape",0 ) );94 node->phx_shape = nv::phx_shape( table["phx_shape"].as<int>( 0 ) ); 95 95 96 96 if ( table.has_field( "local_position" ) ) 97 node->local.set_position( table .get<vec3>( "local_position", vec3()) );97 node->local.set_position( table["local_position"].as<vec3>() ); 98 98 if ( table.has_field( "local_orientation" ) ) 99 node->local.set_orientation( vec4_to_quat( table .get<vec4>( "local_orientation",vec4( 0.0f, 0.0f, 0.0f, 1.0f ) ) ) );99 node->local.set_orientation( vec4_to_quat( table["local_orientation"].as<vec4>( vec4( 0.0f, 0.0f, 0.0f, 1.0f ) ) ) ); 100 100 101 101 if ( table.has_field( "position" ) ) 102 102 { 103 node->position.min = table .get<vec3>( "position", vec3());103 node->position.min = table["position"].as<vec3>(); 104 104 node->position.max = node->position.min; 105 105 } 106 106 if ( table.has_field( "rotation" ) ) 107 107 { 108 node->rotation.min = table .get<vec3>( "rotation", vec3());108 node->rotation.min = table["rotation"].as<vec3>(); 109 109 node->rotation.max = node->rotation.min; 110 110 } 111 if ( table.has_field( "position_min" ) ) node->position.min = table .get<vec3>( "position_min", vec3());112 if ( table.has_field( "position_max" ) ) node->position.max = table .get<vec3>( "position_max", vec3());113 if ( table.has_field( "position_dist" ) ) node->position.dist = random_dist( table .get_unsigned( "position_dist", 0) );114 if ( table.has_field( "rotation_min" ) ) node->rotation.min = table .get<vec3>( "rotation_min", vec3());115 if ( table.has_field( "rotation_max" ) ) node->rotation.max = table .get<vec3>( "rotation_max", vec3());116 if ( table.has_field( "rotation_dist" ) ) node->rotation.dist = random_dist( table .get_unsigned( "rotation_dist", 0) );111 if ( table.has_field( "position_min" ) ) node->position.min = table["position_min"].as<vec3>(); 112 if ( table.has_field( "position_max" ) ) node->position.max = table["position_max"].as<vec3>(); 113 if ( table.has_field( "position_dist" ) ) node->position.dist = random_dist( table["position_dist"].get_uint32() ); 114 if ( table.has_field( "rotation_min" ) ) node->rotation.min = table["rotation_min"].as<vec3>(); 115 if ( table.has_field( "rotation_max" ) ) node->rotation.max = table["rotation_max"].as<vec3>(); 116 if ( table.has_field( "rotation_dist" ) ) node->rotation.dist = random_dist( table["rotation_dist"].get_uint32() ); 117 117 118 118 if ( table.has_field( "attach" ) ) 119 119 { 120 if ( table .is_number( "attach") )120 if ( table["attach"].is_number() ) 121 121 { 122 attach_id = sint16( table .get_integer( "attach",-1 ) );122 attach_id = sint16( table["attach"].get_sint32( -1 ) ); 123 123 // parent_id = 0; 124 124 } 125 125 else if ( auto m = def_data.lock() ) 126 126 { 127 auto it = m->node_names.find( table .get_string_hash_64( "attach") );127 auto it = m->node_names.find( table["attach"].get_shash64() ); 128 128 if ( it != m->node_names.end() ) 129 129 attach_id = sint16( it->second + 1 ); … … 132 132 } 133 133 134 node->nflags = table .get< flags<16,uint16> >( "flags");135 node->choice = model_node_choice( table .get_unsigned( "choice", false) );136 node->chance = table .get_float( "chance",1.0f );137 node->weight = static_cast< uint16 >( table .get_unsigned( "weight",1 ) );134 node->nflags = table["flags"].as< flags<16,uint16> >(); 135 node->choice = model_node_choice( table["choice"].get_uint32( 0 ) ); 136 node->chance = table["chance"].get_f32( 1.0f ); 137 node->weight = static_cast< uint16 >( table["weight"].get_uint32( 1 ) ); 138 138 node->mesh = cmesh; 139 139 node->attach_id = attach_id;
Note: See TracChangeset
for help on using the changeset viewer.