Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- void getMesh( ifstream *fin ){
- string line;
- TRI *tl;
- TRI *tt;
- int i, j, k, l;
- int ntri;
- vector< VECTOR > vlist;
- vector< VECTOR > nlist;
- vector< VECTOR > clist;
- vector< TRI_INDEX > plist;
- //cout << "########## START IMPORTING MESH ##########" << endl;
- getline( *fin, line );
- {
- istringstream out(line);
- out >> ntri;
- }
- tl = (TRI*)malloc( sizeof(TRI) * ntri );
- for( i = 0; i < ntri; i++ ){
- getline( *fin, line );
- istringstream out(line);
- float blank;
- tt = tl+i;
- out >> tt->v[0].x >> tt->v[0].y >> tt->v[0].z
- >> tt->v[1].x >> tt->v[1].y >> tt->v[1].z
- >> tt->v[2].x >> tt->v[2].y >> tt->v[2].z
- >> tt->n.x >> tt->n.y >> tt->n.z
- >> blank >> blank >> blank
- >> tt->c.x >> tt->c.y >> tt->c.z >> tt->c.w;
- TRI_INDEX ti = {-1,-1,vlist.size()};
- plist.push_back( ti );
- vlist.push_back( tt->v[2] );
- nlist.push_back( tt->n );
- clist.push_back( tt->c );
- }
- //cout << "########## MESH IMPORT FINISHED ##########" << endl;
- //cout << "########## START MESH DATA PROCESSING ##########" << endl;
- for( i = 0; i < ntri; i++ ){
- tt = tl+i;
- TRI_INDEX *ti1 = &plist.at(i);
- for( j = 0; j < 2; j++ ){
- bool found = false;
- VECTOR *v1 = (tt->v)+j;
- for( k = 0; k < plist.size(); k++ ){
- TRI_INDEX *ti2 = &plist.at(k);
- for( l = 0; l < 3; l++ ){
- if( ti2->index[l] >= 0 ){
- VECTOR *v2 = &vlist.at(ti2->index[l]);
- if( (v1->x == v2->x) && (v1->y == v2->y) && (v1->z == v2->z) ){
- ti1->index[j] = ti2->index[l];
- found = true;
- break;
- }
- }
- }
- if(found)break;
- }
- if(!found){
- ti1->index[j] = vlist.size();
- vlist.push_back( tt->v[j] );
- nlist.push_back( tt->n );
- clist.push_back( tt->c );
- }
- }
- }
- //cout << "########## MESH DATA PROCESSED ##########" << endl;
- cout << "Vertex List Size: " << vlist.size() << endl;
- for( i = 0; i < plist.size(); i++ ){
- TRI_INDEX *ti = &plist.at(i);
- cout << "[" << ti->index[0] << "][" << ti->index[1] << "][" << ti->index[2] << "]" << endl;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement