- UID
- 148680
- 积分
- 0
- 精华
- 贡献
-
- 威望
-
- 活跃度
-
- D豆
-
- 在线时间
- 小时
- 注册时间
- 2004-6-11
- 最后登录
- 1970-1-1
|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?立即注册
×
我从一shape或linestring元素中取出顶点pointLine生成fence,然后mdlClip_isElemInside判断cell是否在fence 内。代码如下:if(type==4)
{
pointLine[numVerts]=pointLine[0];
numVerts=numVerts+1;
if(mdlShape_create(&elmUnion,NULL,pointLine,numVerts,0)!=SUCCESS)
{
mdlDialog_openInfoBox("can't creat view_shape");
return result;
}
}
else
{
if(mdlShape_create(&elmUnion,NULL,pointLine,numVerts,0)!=SUCCESS)
{
mdlDialog_openInfoBox("can't creat view_shape");
return result;
}
}
mdlFence_clear(TRUE);
mdlFence_fromShape(&elmUnion);
mdlElement_add(&elmUnion);
mdlClip_getFence(&clipP);
mdlScan_initialize(0,&mScanList);
do
{
mScanWords=sizeof(mRetPos)/sizeof(UShort);
mStatus=mdlScan_file(mRetPos,&mScanWords,sizeof(mRetPos),&mNextFilePos);
mElmNum=mScanWords/sizeof(UShort);
for(i=0;i<mElmNum;i++)
{
if(mdlElmdscr_read(&elmDP,mRetPos,0,0,NULL)==0)return result;
if(mdlClip_isElemInside(&isOverlap,elmDP,clipP,tcb->lstvw,TRUE));
{
result=result+1;
} }
}while(mStatus==BUFF_FULL);
mdlClip_free((void *)clipP);
mdlFence_clear(TRUE);
程序将fence范围外的元素也判断在fence中了,好象fence没有发生。请问这是怎么回事? |
|