void EIEdgeImage::Read(LFLineFitter &lf)
{
	SafeRelease();
	width_ = lf.rWidth();
	height_ = lf.rHeight();
	nLines_ = lf.rNLineSegments();
	LFLineSegment* lineSegmentMap = lf.rOutputEdgeMap();

	lines_ = new LFLineSegment[nLines_];
	for (int i=0 ; i<nLines_ ; i++)
		lines_[i] = lineSegmentMap[i];

	SetLines2Grid();
	SetDirections();

}
void EIEdgeImage::Read(const char* fileName)
{
        FILE* fin=NULL;
	fin = fopen(fileName, "r");
	

	//AKANSEL: FIX NEEDED FOR FILES CREATED IN WINDOWS
        // jiaming hu modified
	//string prelude = "./";
	string prelude = "/home/jiaming/catkin_ws/";
	string fileName_str(fileName);
	std::string combo = prelude + fileName_str;
	if (!combo.empty() && combo[combo.size() - 1] == '\r')
	  {
	    combo.erase(combo.size() - 1);
	  }
	const char* fileName_fixed = combo.c_str();
	//////////


	fin = fopen(fileName_fixed, "r");
	std::cout << "FILE NAME: "<<fileName_fixed << std::endl;
	if(fileName_fixed==NULL || fin == NULL)
	  {
	    cerr<<"[ERROR] Cannot read file "<<fileName_fixed<<"!!!\n";
	    perror("fopen");
	    exit(0);
	  }

        fscanf(fin, "%d %d", &width_, &height_);
	
	//std::cout<<"width: "<<width_<<"height: "<<height_<<std::endl;
	fscanf(fin, "%d", &nLines_);
	lines_ = new LFLineSegment[nLines_];
	for (int i=0 ; i<nLines_ ; i++)
	{
		lines_[i].Read(fin);
	}

	SetLines2Grid();
	SetDirections();

	fclose(fin);
}
void EIEdgeImage::Read(const char* fileName)
{
	FILE* fin=NULL;
	fin = fopen(fileName, "r");
	if(fileName==NULL)
	{
		cerr<<"[ERROR] Cannot read file "<<fileName<<"\n!!!";
		exit(0);
	}
	fscanf(fin, "%d %d", &width_, &height_);
	fscanf(fin, "%d", &nLines_);
	lines_ = new LFLineSegment[nLines_];
	for (int i=0 ; i<nLines_ ; i++)
	{
		lines_[i].Read(fin);
	}

	SetLines2Grid();
	SetDirections();

	fclose(fin);
}