Changeset 406 for trunk/src/gfx/mesh_creator.cc
- Timestamp:
- 06/20/15 00:05:17 (10 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/gfx/mesh_creator.cc
r398 r406 24 24 if ( pkeys && pkeys->get_channel_count() > 0 && keys && keys->get_channel_count() > 0 ) 25 25 { 26 nv_key_transform* channel = ((nv_key_transform*)(keys->get_channel(0)->data));27 nv_key_transform* pchannel = ((nv_key_transform*)(pkeys->get_channel(0)->data));26 nv_key_transform* channel = reinterpret_cast<nv_key_transform*>(keys->get_channel(0)->data); 27 nv_key_transform* pchannel = reinterpret_cast<nv_key_transform*>(pkeys->get_channel(0)->data); 28 28 for ( unsigned n = 0; n < count; ++n ) 29 29 { … … 37 37 { 38 38 m_data->m_frame_rate = 32; 39 m_data->m_duration = (float)max_frames;39 m_data->m_duration = static_cast<float>( max_frames ); 40 40 } 41 41 … … 69 69 key_data* new_keys = new key_data; 70 70 new_keys->add_channel( raw_channel ); 71 nv_key_transform* channel = ((nv_key_transform*)(raw_channel->data));71 nv_key_transform* channel = reinterpret_cast<nv_key_transform*>(raw_channel->data); 72 72 key_descriptor final_key = old_keys->get_final_key(); 73 73 … … 110 110 for ( size_t n = 0; n < channel->count; ++n ) 111 111 { 112 transform_key_raw( channel->desc, (uint8*)(channel->data + n * key_size), scale, r33, ri33 );112 transform_key_raw( channel->desc, channel->data + n * key_size, scale, r33, ri33 ); 113 113 } 114 114 } … … 135 135 switch ( desc.slots[i].vslot ) 136 136 { 137 case slot::POSITION : if ( desc.slots[i].etype == FLOAT_VECTOR_3 ) p_offset = (int)desc.slots[i].offset; break;138 case slot::NORMAL : if ( desc.slots[i].etype == FLOAT_VECTOR_3 ) n_offset = (int)desc.slots[i].offset; break;139 case slot::TANGENT : if ( desc.slots[i].etype == FLOAT_VECTOR_4 ) t_offset = (int)desc.slots[i].offset; break;137 case slot::POSITION : if ( desc.slots[i].etype == FLOAT_VECTOR_3 ) p_offset = int(desc.slots[i].offset); break; 138 case slot::NORMAL : if ( desc.slots[i].etype == FLOAT_VECTOR_3 ) n_offset = int(desc.slots[i].offset); break; 139 case slot::TANGENT : if ( desc.slots[i].etype == FLOAT_VECTOR_4 ) t_offset = int(desc.slots[i].offset); break; 140 140 default : break; 141 141 } … … 144 144 for ( uint32 i = 0; i < channel->count; i++) 145 145 { 146 vec3& p = * ((vec3*)(raw_data + vtx_size*i + p_offset ));146 vec3& p = *reinterpret_cast<vec3*>( raw_data + vtx_size*i + p_offset ); 147 147 p = vertex_transform * p + vertex_offset; 148 148 } … … 151 151 for ( uint32 i = 0; i < channel->count; i++) 152 152 { 153 vec3& n = * ((vec3*)(raw_data + vtx_size*i + n_offset ));153 vec3& n = *reinterpret_cast<vec3*>( raw_data + vtx_size*i + n_offset ); 154 154 n = glm::normalize( normal_transform * n ); 155 155 } … … 157 157 for ( uint32 i = 0; i < channel->count; i++) 158 158 { 159 vec4& t = * ((vec4*)(raw_data + vtx_size*i + t_offset ));159 vec4& t = *reinterpret_cast<vec4*>(raw_data + vtx_size*i + t_offset ); 160 160 t = vec4( glm::normalize( normal_transform * vec3(t) ), t[3] ); 161 161 } … … 173 173 size_t n_offset = 0; 174 174 if ( ch_n == -1 ) return; 175 mesh_raw_channel* channel = m_data->m_channels[ (unsigned) ch_n];175 mesh_raw_channel* channel = m_data->m_channels[ unsigned( ch_n ) ]; 176 176 for ( uint32 i = 0; i < channel->desc.count; ++i ) 177 177 if ( channel->desc.slots[i].vslot == slot::NORMAL ) … … 182 182 for ( uint32 i = 0; i < channel->count; ++i ) 183 183 { 184 vec3& normal = * (vec3*)(channel->data + channel->desc.size * i + n_offset);184 vec3& normal = *reinterpret_cast<vec3*>( channel->data + channel->desc.size * i + n_offset ); 185 185 normal = -normal; 186 186 } … … 211 211 if ( desc.slots[i].etype == FLOAT_VECTOR_3 ) 212 212 { 213 p_offset = (int)desc.slots[i].offset;213 p_offset = int( desc.slots[i].offset ); 214 214 p_channel = channel; 215 215 } … … 217 217 case slot::NORMAL : if ( desc.slots[i].etype == FLOAT_VECTOR_3 ) 218 218 { 219 n_offset = (int)desc.slots[i].offset;219 n_offset = int( desc.slots[i].offset ); 220 220 n_channel = m_data->m_channels[ c ]; 221 221 n_channel_index = c; … … 224 224 case slot::TEXCOORD : if ( desc.slots[i].etype == FLOAT_VECTOR_2 ) 225 225 { 226 t_offset = (int)desc.slots[i].offset;226 t_offset = int( desc.slots[i].offset ); 227 227 t_channel = channel; 228 228 } … … 246 246 247 247 mesh_raw_channel* g_channel = mesh_raw_channel::create<vertex_g>( p_channel->count ); 248 vec4* tangents = (vec4*)g_channel->data;248 vec4* tangents = reinterpret_cast<vec4*>( g_channel->data ); 249 249 vec3* tangents2 = new vec3[ p_channel->count ]; 250 250 uint32 tri_count = i_channel ? i_channel->count / 3 : t_channel->count / 3; … … 259 259 if ( i_type == UINT ) 260 260 { 261 const uint32* idata = (const uint32*)i_channel->data;261 const uint32* idata = reinterpret_cast<const uint32*>( i_channel->data ); 262 262 ti0 = idata[ i * 3 ]; 263 263 ti1 = idata[ i * 3 + 1 ]; … … 266 266 else if ( i_type == USHORT ) 267 267 { 268 const uint16* idata = (const uint16*)i_channel->data;268 const uint16* idata = reinterpret_cast<const uint16*>( i_channel->data ); 269 269 ti0 = idata[ i * 3 ]; 270 270 ti1 = idata[ i * 3 + 1 ]; … … 278 278 } 279 279 280 const vec2& w1 = * ((vec2*)(t_channel->data + t_channel->desc.size*ti0 + t_offset ));281 const vec2& w2 = * ((vec2*)(t_channel->data + t_channel->desc.size*ti1 + t_offset ));282 const vec2& w3 = * ((vec2*)(t_channel->data + t_channel->desc.size*ti2 + t_offset ));280 const vec2& w1 = *reinterpret_cast<vec2*>(t_channel->data + t_channel->desc.size*ti0 + t_offset ); 281 const vec2& w2 = *reinterpret_cast<vec2*>(t_channel->data + t_channel->desc.size*ti1 + t_offset ); 282 const vec2& w3 = *reinterpret_cast<vec2*>(t_channel->data + t_channel->desc.size*ti2 + t_offset ); 283 283 vec2 st1 = w3 - w1; 284 284 vec2 st2 = w2 - w1; … … 291 291 uint32 nti1 = t_channel->count * set + ti1; 292 292 uint32 nti2 = t_channel->count * set + ti2; 293 vec3 v1 = * ((vec3*)(p_channel->data + p_channel->desc.size*nti0 + p_offset ));294 vec3 v2 = * ((vec3*)(p_channel->data + p_channel->desc.size*nti1 + p_offset ));295 vec3 v3 = * ((vec3*)(p_channel->data + p_channel->desc.size*nti2 + p_offset ));293 vec3 v1 = *reinterpret_cast<vec3*>(p_channel->data + p_channel->desc.size*nti0 + p_offset ); 294 vec3 v2 = *reinterpret_cast<vec3*>(p_channel->data + p_channel->desc.size*nti1 + p_offset ); 295 vec3 v3 = *reinterpret_cast<vec3*>(p_channel->data + p_channel->desc.size*nti2 + p_offset ); 296 296 vec3 xyz1 = v3 - v1; 297 297 vec3 xyz2 = v2 - v1; … … 317 317 for ( unsigned int i = 0; i < vtx_count; ++i ) 318 318 { 319 const vec3 n = * ((vec3*)(n_channel->data + n_channel->desc.size*i + n_offset ));319 const vec3 n = *reinterpret_cast<vec3*>( n_channel->data + n_channel->desc.size*i + n_offset ); 320 320 const vec3 t = vec3(tangents[i]); 321 321 if ( ! ( t.x == 0.0f && t.y == 0.0f && t.z == 0.0f ) ) … … 420 420 int och_ti = other->get_channel_index( slot::TEXCOORD ); 421 421 if ( ch_pi == -1 || ch_ti == -1 ) return; 422 size_t size = m_data->m_channels[ (unsigned)ch_ti]->count;423 size_t osize = other->m_channels[ (unsigned)och_ti]->count;424 size_t count = m_data->m_channels[ (unsigned)ch_pi]->count;425 size_t ocount = other->m_channels[ (unsigned)och_pi]->count;422 size_t size = m_data->m_channels[ unsigned(ch_ti) ]->count; 423 size_t osize = other->m_channels[ unsigned(och_ti) ]->count; 424 size_t count = m_data->m_channels[ unsigned(ch_pi) ]->count; 425 size_t ocount = other->m_channels[ unsigned(och_pi) ]->count; 426 426 if ( count % size != 0 || ocount % osize != 0 ) return; 427 427 if ( count / size != ocount / osize ) return; … … 440 440 { 441 441 NV_ASSERT( size + osize < uint16(-1), "Index out of range!" ); 442 uint16* indexes = (uint16*)m_data->m_channels[c]->data;443 for ( uint16 i = (uint16)old->count; i < m_data->m_channels[c]->count; ++i )444 indexes[i] += (uint16)size;442 uint16* indexes = reinterpret_cast<uint16*>( m_data->m_channels[c]->data ); 443 for ( uint16 i = uint16( old->count ); i < m_data->m_channels[c]->count; ++i ) 444 indexes[i] += uint16( size ); 445 445 446 446 } … … 448 448 case UINT : 449 449 { 450 uint32* indexes = (uint32*)m_data->m_channels[c]->data;450 uint32* indexes = reinterpret_cast<uint32*>( m_data->m_channels[c]->data ); 451 451 for ( uint32 i = old->count; i < m_data->m_channels[c]->count; ++i ) 452 452 indexes[i] += size;
Note: See TracChangeset
for help on using the changeset viewer.