⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 idset.cxx

📁 another source code for reduced basis
💻 CXX
字号:
/*A fast and simple stretch-minimizing mesh parameterization C++ codeCopyright:(c) Shin Yoshizawa, 2004E-mail: shin.yoshizawa@mpi-sb.mpg.deURL: http://www.mpi-sb.mpg.de/~shinAffiliation: Max-Planck-Institut fuer Informatik: Computer Graphics Group  Stuhlsatzenhausweg 85, 66123 Saarbruecken, Germany Phone +49 681 9325-408 Fax +49 681 9325-499  All right is reserved by Shin Yoshizawa.This C++ sources are allowed for only primary user of research and educational purposes. Don't use secondary: copy, distribution, diversion, business purpose, and etc..  */#include<stdio.h>#include"IDList.h"#include"PolarList.h"#include"IDSet.h"void IDSet::AppendVF(int myID,IDList *dVTail)    {      IDList *now = new IDList(myID);            IDList *dummy = dVTail->back;      now->next = dVTail;      dVTail->back = now;      now->back = dummy;      dummy->next =now;    }int IDSet::SearchI(int dID,IDList *dIHead,IDList *dITail){        IDList *now = dIHead;    while(now->next!=dITail){      now = now->next;      if((now->ID==dID)){	return 1;      }    }    return 0;}    void IDSet::AppendI(int dID,IDList *dIHead,IDList *dITail,int nowID,int *dnum)    {      if(dID!=nowID){	if(SearchI(dID,dIHead,dITail)==0){	  IDList *now = new IDList(dID);	  IDList *dummy = dITail->back;	  now->next = dITail;	  dITail->back = now;	  now->back = dummy;	  dummy->next =now;	  dnum[nowID]++;	}      }else{	      }    }void IDSet::AppendPolarI(int dID,PolarList *dITail,double dx,double dy){  PolarList *now = new PolarList(dID,dx,dy);  PolarList *dummy = dITail->back;  now->next = dITail;  dITail->back = now;  now->back = dummy;  dummy->next =now;}void IDSet::AppendPolarI(int dID,PolarList *dITail,double dx,double dy,double dz,double cotw){  PolarList *now = new PolarList(dID,dx,dy,dz,cotw);  PolarList *dummy = dITail->back;  now->next = dITail;  dITail->back = now;  now->back = dummy;  dummy->next =now;}/*void IDSet::AppendPolarI(int dID,PolarList *dITail,double dx,double dy,double dz,int nextID,int backID){  PolarList *now = new PolarList(dID,dx,dy,dz,nextID,backID);  PolarList *dummy = dITail->back;  now->next = dITail;  dITail->back = now;  now->back = dummy;  dummy->next =now;  }*/void IDSet::AppendPolarIRL(int dID,PolarList *dITail,double dr,double dthta,double dlambda,int tR,int tL,int nextP){  PolarList *now = new PolarList(dID,dr,dthta,dlambda,tR,tL,nextP);  PolarList *dummy = dITail->back;  now->next = dITail;  dITail->back = now;  now->back = dummy;  dummy->next =now;  }void IDSet::AppendVFSort(int dID,IDList *dIHead,IDList *dITail){  IDList *now = new IDList(dID);  IDList *dummy = dITail->back;  if(dIHead->next!=dITail)    while(dID<dummy->ID){      dummy = dummy->back;      if(dummy==dIHead)break;    }  dummy = dummy->next;  IDList *dummyback=dummy->back;    now->next = dummy;  dummy->back = now;  now->back = dummyback;  dummyback->next =now;}void IDSet::AppendISort(int dID,IDList *dIHead,IDList *dITail){            if(SearchI(dID,dIHead,dITail)==0){            IDList *now = new IDList(dID);      IDList *dummy = dITail->back;      if(dIHead->next!=dITail)	while(dID<dummy->ID){	  dummy = dummy->back;	  if(dummy==dIHead)break;	}      dummy = dummy->next;      IDList *dummyback=dummy->back;            now->next = dummy;      dummy->back = now;      now->back = dummyback;      dummyback->next =now;          }          }void IDSet::AppendISort(int dID,IDList *dIHead,IDList *dITail,int nowID,int *dnum){    if(dID!=nowID){        if(SearchI(dID,dIHead,dITail)==0){            IDList *now = new IDList(dID);      IDList *dummy = dITail->back;      if(dIHead->next!=dITail)	while(dID<dummy->ID){	  dummy = dummy->back;	  if(dummy==dIHead)break;	}      dummy = dummy->next;      IDList *dummyback=dummy->back;            now->next = dummy;      dummy->back = now;      now->back = dummyback;      dummyback->next =now;      dnum[nowID]++;    }      }else{      }    }void IDSet::AppendIF(int dID,IDList *dIHead,IDList *dITail,int nowID,int *dnum)    {      	if(SearchI(dID,dIHead,dITail)==0){	  IDList *now = new IDList(dID);	  IDList *dummy = dITail->back;	  now->next = dITail;	  dITail->back = now;	  now->back = dummy;	  dummy->next =now;	  dnum[nowID]++;	}    }void IDSet::CleanNeighborPolar(PolarList* dHead,PolarList* dTail){  PolarList *dummy; PolarList *now;  int i;  now = dHead->next;  if(now!=dTail)  while(now->next!=dTail){    dummy = now->next;    delete now;    now = dummy;  }  delete dHead;  delete dTail;}void IDSet::CleanNeighbor(IDList* dHead,IDList* dTail){  IDList *dummy; IDList *now;  int i;  now = dHead->next;  if(now!=dTail)  while(now->next!=dTail){    dummy = now->next;    delete now;    now = dummy;  }  delete dHead;  delete dTail;}void IDSet::Clean(IDList **dFHead,IDList **dFTail,int numberSV,int *dneighborN){  IDList *now=NULL;  IDList *dummy=NULL;  int i;  for(i=0;i<numberSV;i++){    if(dneighborN[i]!=0){      now = dFHead[i]->next;      if(now!=dFTail[i])      while(now->next!=dFTail[i]){	dummy = now->next;		delete now;		now = dummy;      }    }        dFHead[i]->next = dFTail[i];    dFTail[i]->back = dFHead[i];      dneighborN[i]=0;  }  }  void IDSet::CleanNeighborLL(IDList **dFHead,IDList **dFTail,int numberSV,int *dneighborN){  IDList *now=NULL;  IDList *dummy=NULL;  int i;  for(i=0;i<numberSV;i++){    if(dneighborN[i]!=0){    now = dFHead[i]->next;    if(now!=dFTail[i])    while(now->next!=dFTail[i]){      dummy = now->next;            delete now;            now = dummy;    }    }    delete dFHead[i];    delete dFTail[i];       }  delete [] dneighborN;  delete [] dFHead;  delete [] dFTail;  }void IDSet::CleanNeighborL(IDList **dFHead,IDList **dFTail,int numberSV){  IDList *now=NULL;  IDList *dummy=NULL;  int i;  for(i=0;i<numberSV;i++){        now = dFHead[i]->next;    if(now!=dFTail[i])      while(now->next!=dFTail[i]){	dummy = now->next;		delete now;		now = dummy;      }        delete dFHead[i];    delete dFTail[i];       }  delete [] dFHead;  delete [] dFTail;  }void IDSet::CleanNeighborLPolar(PolarList **dFHead,PolarList **dFTail,int numberSV){  PolarList *now=NULL;  PolarList *dummy=NULL;  int i;  for(i=0;i<numberSV;i++){        now = dFHead[i]->next;    if(now!=dFTail[i])    while(now->next!=dFTail[i]){      dummy = now->next;            delete now;            now = dummy;    }        delete dFHead[i];    delete dFTail[i];       }  delete [] dFHead;  delete [] dFTail;  }

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -