void Ctr2SufManager::readContourFromVec(vector<CurveNetwork> vecCurveNetwork,float* fPreSetBBox,vector<vector<Point_3>>& MeshBoundingProfile3D)
{
	clearOldContour();
	//clear mesh
	delete mesh;
	mesh = NULL;

	addContourFromVec(vecCurveNetwork,fPreSetBBox,MeshBoundingProfile3D);
}
Ctr2SufManager::~Ctr2SufManager()
{
	//mesh
	delete mesh;
	
	//Contour
	clearOldContour();
	clearContour();

	//clear processed data
	clearPData();

	//clear partition data
	clearPartition();

	//clear face contour data
	clearFaceContour();
}
void Ctr2SufManager::readContour(const int filenum, char** fnames)
{
	clearOldContour();
	////clear processed data
	//clearPData();

	////clear partition data
	//clearPartition();

	////clear face contour data
	//clearFaceContour();
	//
	//clear mesh
	delete mesh;
	mesh = NULL;

	addContour(filenum, fnames);

}
void Ctr2SufManager::readContourFromFile(char* fnames,vector<vector<Point_3>>& MeshBoundingProfile3D)
{
	clearOldContour();
	//clear mesh
	delete mesh;
	mesh = NULL;

	ContourHandler::readContourFromFile(fnames, param, ctrvers, ctredges, bbox, bboxset);
	resize();


	for( int i = 0; i < planenum; i ++)
	{
		int iVerIndBase=0;
		vector<Point_3> CurrentProfile3D;
		for( int j = 0;j < showctredgenum[ i ]; j++)
		{

			int v1 = showctredges[ i ][ 2*j ];
			int v2 = showctredges[ i ][ 2*j + 1 ];

			CurrentProfile3D.push_back(Point_3(showctrvers[ i ][ v1* 3],
				showctrvers[ i ][ v1* 3+1],
				showctrvers[ i ][ v1* 3+2]));

			//kw noted: one closed cross section is totally read
			//may have problem for non-self-defined data
			if (v2==iVerIndBase)
			{
				iVerIndBase=iVerIndBase+CurrentProfile3D.size();
				MeshBoundingProfile3D.push_back(CurrentProfile3D);
				CurrentProfile3D.clear();
			}
		}
	}
}