www.pudn.com > MyImageDB(imageobject).rar > MyReguTex.cpp


// MyReguTex.cpp: implementation of the MyReguTex class. 
// 
////////////////////////////////////////////////////////////////////// 
 
#include "stdafx.h" 
#include "myimagedb.h" 
#include "MyReguTex.h" 
 
#ifdef _DEBUG 
#undef THIS_FILE 
static char THIS_FILE[]=__FILE__; 
#define new DEBUG_NEW 
#endif 
 
////////////////////////////////////////////////////////////////////// 
// Construction/Destruction 
////////////////////////////////////////////////////////////////////// 
 
MyReguTex::MyReguTex() 
{ 
  mySubRegutex = "";//无子基元; 
  myParent = "";//无父基元; 
  myLevel = -1;//-1层; 
  myItensity = -1.;//强度无; 
  myTexlen = -1;//长度无; 
} 
 
void MyReguTex::SetValue(INT inindexid//基元索引标识 
	  , INT  inlevel//基元所在层次; 
	  , FLOAT initensity//该基元各像素的平均值; 
	  , INT   intexlen//纹理尺寸; 
	  , CString insubRegutex//所包含的子基元的索引标识号,各子基元之间用逗号分隔; 
	  , CString inparent//该基元的父基元的索引标识号; 
	  ) 
//赋值; 
{ 
  myIndexid = inindexid; 
  mySubRegutex = insubRegutex; 
  myParent = inparent; 
  myLevel = inlevel; 
  myItensity = initensity; 
  myTexlen = intexlen; 
} 
 
 
MyReguTex::MyReguTex(INT inindexid 
	  , INT  inlevel//基元所在层次; 
	  , FLOAT initensity//该基元各像素的平均值; 
	  , INT   intexlen//纹理尺寸; 
	  , CString insubRegutex//所包含的子基元的索引标识号,各子基元之间用逗号分隔; 
	  , CString inparent//该基元的父基元的索引标识号; 
	  )//赋值; 
{ 
  myIndexid = inindexid; 
  mySubRegutex = insubRegutex; 
  myParent = inparent; 
  myLevel = inlevel; 
  myItensity = initensity; 
  myTexlen = intexlen; 
} 
 
MyReguTex::~MyReguTex() 
{ 
 
} 
 
void MyReguTex::SetParentReguTex(MyReguTex* inparent) 
{ 
	INT iparentid = inparent->myIndexid; 
	CString sparentid; 
	sparentid.Format("%d", iparentid); 
	myParent = sparentid; 
} 
 
void MyReguTex::SetParentReguTex(INT iparentid) 
{ 
	CString sparentid; 
	sparentid.Format("%d", iparentid); 
	myParent = sparentid; 
} 
 
void MyReguTex::SetParentReguTex(CString sparentid) 
{ 
	myParent = sparentid; 
} 
 
void MyReguTex::AddSubReguTex(MyReguTex* inchild) 
{ 
	INT ichildid = inchild->myIndexid; 
	CString schildid; 
	schildid.Format("%d", ichildid); 
	mySubRegutex += schildid;	 
} 
 
void MyReguTex::AddSubReguTex(INT inchildid) 
{ 
	CString schildid; 
	schildid.Format("%d", inchildid); 
	mySubRegutex += schildid;	 
} 
 
void MyReguTex::AddSubReguTex(CString schildid) 
{ 
	mySubRegutex += schildid; 
} 
 
bool MyReguTex::operator==(const MyReguTex& y) 
{ 
	//比较基元间是否相似; 
	if ( fabs(myItensity-y.myItensity) > 10 ) 
	{ 
		//此处可以加入其它规则以比较不同基元之间的相似度; 
		return FALSE; 
	} 
 
    return ( (myLevel == y.myLevel) && (myTexlen == y.myTexlen)  
		&& (mySubRegutex == y.mySubRegutex)  
		&& (myParent == y.myParent) ); 
} 
 
bool MyReguTex::operator<(const MyReguTex& y) 
{ 
    return myIndexid < y.myIndexid; 
}