void BlockEdgeSimilarDetector::Run()
{
#ifdef BED_OUTPUT_DEBUG_INFO
	drowDebugResult = image.clone();
	if (drowDebugResult.channels() == 1)
		cv::cvtColor(drowDebugResult, drowDebugResult, CV_GRAY2BGR);
	doUp();
	doDown(); 
	doLeft();
	doRight();
#else
	thread t1 = thread(std::mem_fn(&BlockEdgeSimilarDetector::doUp), this);
	thread t2 = thread(std::mem_fn(&BlockEdgeSimilarDetector::doDown), this);
	thread t3 = thread(std::mem_fn(&BlockEdgeSimilarDetector::doLeft), this);
	thread t4 = thread(std::mem_fn(&BlockEdgeSimilarDetector::doRight), this);
	t1.join();
	t2.join();
	t3.join();
	t4.join();
#endif


	//double maxdiff = (maxdiff_X > maxdiff_Y) ? maxdiff_X : maxdiff_Y;
	//int maxDeep = (maxDeep_X > maxDeep_Y) ? maxDeep_X : maxDeep_Y;
	//stringstream ss;
	//ss << "BED定标消息:最大不相似度=" << maxdiff << ",缺陷最大深度 = " << maxDeep << "pix" << endl;
	//MFCConsole::Output(ss.str());
}
Example #2
0
void GameScene::onTouchEnded(Touch* touch, Event* event)
{
    Point pos = touch->getLocation();
    SimpleGestures rtn = recognizer->endPoint(pos);
    switch (rtn) {
        case SimpleGesturesLeft:
            doLeft();
            doCheck();
            setScore(score);
            break;
        case SimpleGesturesRight:
            doRight();
            doCheck();
            setScore(score);
            break;
        case SimpleGesturesUp:
            doUp();
            doCheck();
            setScore(score);
            break; 
        case SimpleGesturesDown:
            doDown();
            doCheck();
            setScore(score);
            break;
        case SimpleGesturesNotSupport:
        case SimpleGesturesError:
            log("not support or error touch,use geometricRecognizer!!");
            break;
        default:
            break; 
    } 
} 
void BlockEdgeLineDetector::Run()
{
#ifdef BELD_OUTPUT_DEBUG_INFO
	drowDebugResult = image.clone();
	if (drowDebugResult.channels() == 1)
		cv::cvtColor(drowDebugResult, drowDebugResult, CV_GRAY2BGR);
	doUp();
	doDown(); 
	doLeft();
	doRight();
#else
	thread t1 = thread(std::mem_fn(&BlockEdgeLineDetector::doUp), this);
	thread t2 = thread(std::mem_fn(&BlockEdgeLineDetector::doDown), this);
	thread t3 = thread(std::mem_fn(&BlockEdgeLineDetector::doLeft), this);
	thread t4 = thread(std::mem_fn(&BlockEdgeLineDetector::doRight), this);
	t1.join();
	t2.join();
	t3.join();
	t4.join();
#endif

	minLengthPix = minLengthPix == 9999 ? 0 : minLengthPix;
	minDeepPix = minDeepPix == 9999 ? 0 : minDeepPix;
	stringstream ss;
	ss << "BLED定标消息:最大崩边长度=" << maxLengthPix << "pix,最大深度 = " << maxDeepPix << "pix" << endl;
	ss << "BLED定标消息:最小崩边长度=" << minLengthPix << "pix,最小深度 = " << minDeepPix << "pix" << endl;
	MFCConsole::Output(ss.str());
}
Example #4
0
void GameScene::onTouchEnded(Touch *touch, Event *unused_event){
    Point pos = touch->getLocation();
    SimpleGestures gesture = recognizer->endPoint(pos);
    
    switch (gesture) {
        case SimpleGesturesLeft:
            doLeft();
            log("left");
            break;
        case SimpleGesturesRight:
            doRight();
            log("right");
            break;
        case SimpleGesturesUp:
            doUp();
            log("up");
            break;
        case SimpleGesturesDown:
            doDown();
            log("dowm");
            break;
            
        default:
            break;
    }
    
    createCardNumber(true);
    
}
Example #5
0
//事件监听回调:触摸结束
void HelloWorld::onTouchEnded(cocos2d::Touch *touch, cocos2d::Event *unused_event)
{
	//获取X轴和Y轴的移动范围
	Point touchPoint=touch->getLocation(); //获取OpenGL坐标(即cocos2d-x坐标,原点在左下角)
	endX=firstX - touchPoint.x;
	endY=firstY - touchPoint.y;

	//判断X轴和Y轴的移动距离,如果X轴的绝对值大,则向左右滑动,如果Y轴的绝对值大,则向上下滑动
	if(abs(endX) > abs(endY))
	{
		//手势向左右
		//判断向左还是向右
		if(endX+5>0)
		{
			//向左
			doLeft();
		//判断游戏是否还能继续  
         doCheckGameOver(); 
		}
		else
		{
			//向右
			doRight();
			//判断游戏是否还能继续  
         doCheckGameOver(); 
		}
	}
	else
	{
		//手势向上下
		//判断手势向上还是向下
		if(endY+5>0)
		{
			//向下
			doDown();
			//判断游戏是否还能继续  
         doCheckGameOver(); 
		}
		else
		{
			//向上
			doUp();
			//判断游戏是否还能继续  
         doCheckGameOver(); 
		}

	}
}
Example #6
0
void GameScene::onTouchEnded(Touch* touch, Event* event)
{
	//得到触摸结束时坐标
	Point endTouch = touch->getLocation();  //获取OpenGL坐标,以左下角为原点
	//计算手指在X,Y移动的距离
	endX = beginX - endTouch.x;
	endY = beginY - endTouch.y;
	if (abs(endX) > abs(endY))
	{
		//如果X轴移动的距离大于Y轴,则是左右移动
		if (endX + 5 > 0)
		{
			//向左移动
			doLeft();
			createCardNumber();
			doCheck();
			setScore(score);
		}
		else
		{
			//向右移动
			doRight();
			createCardNumber();
			doCheck();
			setScore(score);
		}
	}
	else //否则是上下移动
	{
		if (endY + 5 > 0)
		{
			//向下移动
			doDown();
			createCardNumber();
			doCheck();
			setScore(score);
		}
		else
		{
			//向上移动
			doUp();
			createCardNumber();
			doCheck();
			setScore(score);
		}
	}
}
Example #7
0
PartList::PartList(QWidget *parent, ModelViewerWidget *modelWidget, LDHtmlInventory *htmlInventory)
    :QDialog(parent),PartListPanel(),
     modelWidget(modelWidget),
     m_htmlInventory(htmlInventory)
{
    setupUi(this);
    connect( upButton, SIGNAL( clicked() ), this, SLOT( doUp() ) );
    connect( downButton, SIGNAL( clicked() ), this, SLOT( doDown() ) );
    connect( okButton, SIGNAL( clicked() ), this, SLOT( doOk() ) );
    connect( cancelButton, SIGNAL( clicked() ), this, SLOT( doCancel() ) );
    connect( showModelButton, SIGNAL( clicked() ), this, SLOT( doShowModel() ) );
    connect( fieldOrderView, SIGNAL( currentItemChanged(QListWidgetItem *, QListWidgetItem *) ), this, SLOT( doHighlighted(QListWidgetItem *, QListWidgetItem *) ) );

    modelViewer = modelWidget->getModelViewer();
//	fieldOrderView->header()->hide();
//	fieldOrderView->setSorting(-1);
}
Example #8
0
void HelloWorld::onTouchEnded(Touch *touch, Event *unused_event){
	Point touchPo = touch->getLocation();
	endX = firstX - touchPo.x;
	endY = firstY - touchPo.y;

	if (abs(endX) > abs(endY)){//绝对值
		//左右
		if (endX+5>0){
			//左边
			if (doLeft()){
				autoCreateCardNumber();
				doCheckGameOver();
			}
		}else{
			//右边
			if (doRight()){
				autoCreateCardNumber();
				doCheckGameOver();
			}
		}
	}else{
		//上下
		if (endY + 5 < 0){
			//上
			if (doUp()){
				autoCreateCardNumber();
				doCheckGameOver();
			}
		}else{
			//下
			if (doDown()){
				autoCreateCardNumber();
				doCheckGameOver();
			}
		}
	}
}