//*************************************************************************************** // // File name: ModelFinderAlignmentTask.cpp // Location: ...\Matrox Imaging\MILxxx\Examples\Processing\ProductInspection\ExampleBase\C++ // \InspectionTaskBase // // Synopsis: This file contains the implementation of the CModAlignmentTask class // which is the base class for any alignment task. // // Copyright (C) Matrox Electronic Systems Ltd., 1992-2015. // All Rights Reserved #include <mil.h> #include "ModelFinderAlignmentTask.h" //***************************************************************************** // Constants. //***************************************************************************** //***************************************************************************** // Constructor. //***************************************************************************** CModAlignmentTask::CModAlignmentTask(MIL_CONST_TEXT_PTR ModContextPath, MIL_INT ColorConversion /* = M_NONE */, CInspectionTask* FixtureProvider /* = M_NULL */, CInspectionTask* ImageProvider /* = M_NULL */) : CHighLevelInspectionTask(ModContextPath, MmodFree, ColorConversion, FixtureProvider, ImageProvider) { } //***************************************************************************** // Destructor. //***************************************************************************** CModAlignmentTask::~CModAlignmentTask() { } //***************************************************************************** // Inspect. //***************************************************************************** bool CModAlignmentTask::Calculate(MIL_ID MilImage) { // Match the model MmodFind(MilContext(), MilImage, MilResult()); // Get the number of models found MmodGetResult(MilResult(), M_GENERAL, M_NUMBER + M_TYPE_MIL_INT, &m_NumberFound); return m_NumberFound > 0; } //***************************************************************************** // Set fixture. //***************************************************************************** void CModAlignmentTask::SetFixture() { SetOutputFixture(M_RESULT_MOD, M_NULL, MilResult(), 0, M_DEFAULT, M_DEFAULT, M_DEFAULT); } //***************************************************************************** // Draw the graphical result. //***************************************************************************** void CModAlignmentTask::DrawGraphicalResult(MIL_ID MilGraContext, MIL_ID MilDest) { // Draw the output fixture. MgraColor(MilGraContext, M_COLOR_RED); DrawOutputFixture(MilGraContext, MilDest); }