<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <meta content="text/html; charset=UTF-8" http-equiv="Content-Type">
  </head>
  <body text="#000000" bgcolor="#ffffff">
    Hi Agata,<br>
    <br>
    You probably got it figure out already. Here is the solution.<br>
    <br>
    1.  Your LandmarkDLL class does not have an main() entry point, you
    can not create an executable. Instead, you should create a library.<br>
    ADD_LIBRARY(LandmarkDLL LandmarkDLL.h LandmarkDLL.cxx)<br>
    <br>
    2. Remember to link to the newly created library to avoid
    "unresolved external symbol" linker error.<br>
    ADD_Executable(MainLandmarkDLL  MainLandmarkDLL.cxx)<br>
    TARGET_LINK_LIBRARIES(MainLandmarkDLL LandmarkDLL IGSTKSandbox)<br>
    <br>
    Using these three lines of scripts to replace the last four lines in
    your CMakeLists.txt, you should be able to build the project.<br>
    <br>
    I hope this helps,<br>
    <br>
    Patrick<br>
    <br>
    On 6/4/2011 1:58 PM, Agata Krasoń wrote:
    <blockquote
      cite="mid:BANLkTimjnP=YHKCYtGWrVAmV7fGiLMrCTQ@mail.gmail.com"
      type="cite">
      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
      <div>Hello All IGSTK Users and Developpers,</div>
      <div><br>
      </div>
      <div>I' m fresh igstk user. I m doing first steps in igstk .</div>
      <div>I work with  example LandmarkRegistration1(in Sandbox). </div>
      <div>I use Visual Studio 2008.</div>
      <div>I need to create dll and link  exe file.</div>
      <div>I created dll . It works well. But I have a big problem with
        linking it with exe file.</div>
      <div>I created  script in CMake.</div>
      <div>I attach some of code :</div>
      <div>
        <br>
      </div>
      <div>I would to appreciate for any help please.</div>
      <div><br>
      </div>
      <div>CMake script :</div>
      <div>---------------------------------------------------------------------------------</div>
      <div>
        <div>cmake_minimum_required(VERSION 2.8)</div>
        <div><br>
        </div>
        <div>PROJECT(LandmarkDLL)</div>
        <div><br>
        </div>
        <div><br>
        </div>
        <div>FIND_PACKAGE(IGSTK)</div>
        <div>IF(IGSTK_FOUND)</div>
        <div>  INCLUDE(${IGSTK_USE_FILE})</div>
        <div>ELSE(IGSTK_FOUND)</div>
        <div>  MESSAGE(FATAL_ERROR</div>
        <div>          "Cannot build without IGSTK.  Please set
          IGSTK_DIR.")</div>
        <div>ENDIF(IGSTK_FOUND)</div>
        <div><br>
        </div>
        <div>FIND_PACKAGE(OpenIGTLink)</div>
        <div>IF(OpenIGTLink_FOUND)</div>
        <div>  INCLUDE(${OpenIGTLink_USE_FILE})</div>
        <div>ELSE(OpenIGTLink_FOUND)</div>
        <div>  MESSAGE(FATAL_ERROR</div>
        <div>          "Cannot build without OpenIGTLink.  Please set
          OpenIGTLink_DIR.")</div>
        <div>ENDIF(OpenIGTLink_FOUND)</div>
        <div><br>
        </div>
        <div><br>
        </div>
        <div><br>
        </div>
        <div>FIND_PACKAGE(IGSTKSandbox)</div>
        <div>IF(IGSTKSandbox_FOUND)</div>
        <div>  INCLUDE(${IGSTKSandbox_USE_FILE})</div>
        <div>ELSE(IGSTKSandbox_FOUND)</div>
        <div>  MESSAGE(FATAL_ERROR</div>
        <div>          "Cannot build without IGSTK.  Please set
          IGSTK_DIR.")</div>
        <div>ENDIF(IGSTKSandbox_FOUND)</div>
        <div><br>
        </div>
        <div>INCLUDE_DIRECTORIES (</div>
        <div>  ${IGSTKSandbox_SOURCE_DIR}</div>
        <div>  ${IGSTKSandbox_BINARY_DIR}</div>
        <div>  ${IGSTKSandbox_SOURCE_DIR}/Source</div>
        <div>  ${IGSTKSandbox_BINARY_DIR}/Source</div>
        <div>  )</div>
        <div><br>
        </div>
        <div><br>
        </div>
        <div>  IF (IGSTKSandbox_USE_CompressedDV)</div>
        <div>    SUBDIRS( VideoFrameGrabberAndViewerCompressedDV )</div>
        <div>  ENDIF (IGSTKSandbox_USE_CompressedDV)</div>
        <div><br>
        </div>
        <div>
            IF (IGSTKSandbox_USE_unicap)</div>
        <div>    INCLUDE_DIRECTORIES(</div>
        <div>    /usr/local/include/unicap</div>
        <div>    )</div>
        <div>    #SUBDIRS( VideoTemporalCalibrationWizard )</div>
        <div>  ENDIF (IGSTKSandbox_USE_unicap)</div>
        <div><br>
        </div>
        <div><br>
        </div>
        <div>  </div>
        <div>   if(COMMAND cmake_policy)</div>
        <div>      cmake_policy(SET CMP0003 NEW)</div>
        <div>    endif(COMMAND cmake_policy)</div>
        <div> </div>
        <div><br>
        </div>
        <div><b>ADD_Executable(LandmarkDLL LandmarkDLL.h
            LandmarkDLL.cxx)</b></div>
        <div><b>TARGET_LINK_LIBRARIES(LandmarkDLL IGSTKSandbox)</b></div>
        <div><b><br>
          </b></div>
        <div><b><br>
          </b></div>
        <div><b>ADD_Executable(MainLandmarkDLL  MainLandmarkDLL.cxx)</b></div>
        <div><b>TARGET_LINK_LIBRARIES(MainLandmarkDLL IGSTKSandbox)</b></div>
      </div>
      <div><br>
      </div>
      <div><br>
      </div>
      <div>----------------------------------------------------------------------------------</div>
      <div><b>LandmarkDLL.h</b></div>
      <div><br>
      </div>
      <div>
        <div><b>#include <iostream></b></div>
        <div><b>#include "igstkLandmark3DRegistration.h"</b></div>
        <div><b>#include "igstkLogger.h"</b></div>
        <div><b>#include "itkStdStreamLogOutput.h"</b></div>
        <div><b>#include "itkObject.h"</b></div>
        <div><b>#include "itkCommand.h"</b></div>
        <div><b>#include "itkMacro.h"</b></div>
        <div><b><br>
          </b></div>
        <div><b>#include "igstkEvents.h"</b></div>
        <div><b>#include "igstkTransform.h"</b></div>
        <div><b>#include "igstkCoordinateSystemTransformToResult.h" </b></div>
        <div><b><br>
          </b></div>
        <div><b><br>
          </b></div>
        <div><b><br>
          </b></div>
        <div><b>namespace LandmarkD</b></div>
        <div><b>{</b></div>
        <div><b><br>
          </b></div>
        <div><b>class LandmarkDLL</b></div>
        <div><b>{</b></div>
        <div><b>public:</b></div>
        <div><b><br>
          </b></div>
        <div><b><span class="Apple-tab-span" style="white-space: pre;">
            </span> static __declspec(dllexport) void Rejestracja();</b></div>
        <div><b><br>
          </b></div>
        <div><b><br>
          </b></div>
        <div><b>};</b></div>
        <div><b>}</b></div>
      </div>
      <div><b><br>
        </b></div>
      <div><b>-------------------------------------------------------------------------------------</b></div>
      <div><b><br>
        </b></div>
      <div>LandmarkDLL.cxx</div>
      <div><br>
      </div>
      <div>
        <div>#include "LandmarkDLL.h"</div>
        <div>#include <iostream></div>
        <div><br>
        </div>
        <div>// BeginLatex</div>
        <div>// </div>
        <div>// To use the registration component, the header file for </div>
        <div>// \doxygen{Landmark3DRegistration} is added:</div>
        <div>//</div>
        <div>// EndLatex</div>
        <div><br>
        </div>
        <div>// BeginCodeSnippet</div>
        <div>#include "igstkLandmark3DRegistration.h"</div>
        <div>// EndCodeSnippet</div>
        <div><br>
        </div>
        <div><br>
        </div>
        <div>#include "igstkLogger.h"</div>
        <div>#include "itkStdStreamLogOutput.h"</div>
        <div>#include "itkObject.h"</div>
        <div>#include "itkCommand.h"</div>
        <div>
          #include "itkMacro.h"</div>
        <div><br>
        </div>
        <div>// BeginLatex</div>
        <div>// </div>
        <div>// Transform parameters are returned to the application
          using loaded events. </div>
        <div>// To handle these events, the following \doxygen{Events} </div>
        <div>// and \doxygen{Transform} header files are needed:</div>
        <div>//</div>
        <div>// EndLatex</div>
        <div><br>
        </div>
        <div>// BeginCodeSnippet</div>
        <div>#include "igstkEvents.h"</div>
        <div>#include "igstkTransform.h"</div>
        <div>#include "igstkCoordinateSystemTransformToResult.h" </div>
        <div>//#include "LandmarkDLL.h"</div>
        <div><br>
        </div>
        <div>using namespace std;</div>
        <div>// EndCodeSnippet</div>
        <div><br>
        </div>
        <div><br>
        </div>
        <div>// BeginLatex</div>
        <div>// </div>
        <div>// To fully  utilize the registration component, callbacks
          need to be set up </div>
        <div>// to observe events that could be thrown by the
          registration component.  </div>
        <div>// For this purpose, the ITK command class is used to
          derive a callback class.</div>
        <div>// The ITK command class implements a subject/observer
          (command design) pattern.</div>
        <div>// A subject notifies an observer by running the
          \code{Execute } method of </div>
        <div>// the derived callback class. For example, a callback
          class meant </div>
        <div>// to observe an error in the transform computation is
          defined as follows:</div>
        <div>// </div>
        <div>// EndLatex</div>
        <div><br>
        </div>
        <div>// BeginCodeSnippet</div>
        <div>namespace LandmarkD</div>
        <div>{</div>
        <div>class Landmark3DRegistrationErrorCallback : public
          itk::Command</div>
        <div>{</div>
        <div>public:</div>
        <div>  typedef Landmark3DRegistrationErrorCallback Self;</div>
        <div>  typedef itk::SmartPointer<Self>            
          Pointer;</div>
        <div>  typedef itk::Command                        Superclass;</div>
        <div>  itkNewMacro(Self);</div>
        <div>  void Execute(const itk::Object * itkNotUsed(caller),
          const itk::EventObject & itkNotUsed(event))</div>
        <div>    {</div>
        <div><br>
        </div>
        <div>    }</div>
        <div>  void Execute(itk::Object * itkNotUsed(caller), const
          itk::EventObject & itkNotUsed(event))</div>
        <div>    {</div>
        <div>    std::cerr<<"Error in transform
          computation"<<std::endl;</div>
        <div>    }</div>
        <div>protected:</div>
        <div>  Landmark3DRegistrationErrorCallback() {};</div>
        <div><br>
        </div>
        <div>private:</div>
        <div>};</div>
        <div>//EndCodeSnippet</div>
        <div><br>
        </div>
        <div><br>
        </div>
        <div>class Landmark3DRegistrationInvalidRequestCallback : public
          itk::Command</div>
        <div>{</div>
        <div>public:</div>
        <div>  typedef Landmark3DRegistrationInvalidRequestCallback
          Self;</div>
        <div>  typedef itk::SmartPointer<Self>                    
           Pointer;</div>
        <div>  typedef itk::Command                                
          Superclass;</div>
        <div>  itkNewMacro(Self);</div>
        <div>  void Execute(const itk::Object * itkNotUsed(caller),
          const itk::EventObject & itkNotUsed(event) )</div>
        <div>    {</div>
        <div><br>
        </div>
        <div>    }</div>
        <div>  void Execute(itk::Object * itkNotUsed(caller), const
          itk::EventObject & itkNotUsed(event) )</div>
        <div>    {</div>
        <div>    std::cerr<<"Invalid input
          request!!"<<std::endl;</div>
        <div>    }</div>
        <div>protected:</div>
        <div>  Landmark3DRegistrationInvalidRequestCallback() {};</div>
        <div><br>
        </div>
        <div>private:</div>
        <div>};</div>
        <div><br>
        </div>
        <div>// BeginLatex</div>
        <div>// </div>
        <div>// Similarly, a callback class needs to be defined to
          observe the</div>
        <div>// \doxygen{CoordinateSystemTransformToEvent} event. This
          event is loaded with</div>
        <div>// transform parameters that are computed by the
          registration component.  The</div>
        <div>// commands are as follows:</div>
        <div>// EndLatex</div>
        <div><br>
        </div>
        <div>// BeginCodeSnippet</div>
        <div>class Landmark3DRegistrationGetTransformCallback: public
          itk::Command</div>
        <div>{</div>
        <div>public:</div>
        <div>  typedef Landmark3DRegistrationGetTransformCallback  
           Self;</div>
        <div>  typedef itk::SmartPointer<Self>                    
            Pointer;</div>
        <div>  typedef itk::Command                                
           Superclass;</div>
        <div>  itkNewMacro(Self);</div>
        <div><br>
        </div>
        <div>  typedef igstk::CoordinateSystemTransformToEvent
          TransformEventType;</div>
        <div>  </div>
        <div>  void Execute( const itk::Object * itkNotUsed(caller),
          const itk::EventObject & itkNotUsed(event) )</div>
        <div>    {</div>
        <div>    }</div>
        <div> </div>
        <div>  void Execute( itk::Object * itkNotUsed(caller), const
          itk::EventObject & event )</div>
        <div>    {</div>
        <div>    std::cout<< " TransformEvent is thrown" <<
          std::endl;</div>
        <div>    const TransformEventType * transformEvent =</div>
        <div>      dynamic_cast < const TransformEventType* > (
          &event );</div>
        <div><br>
        </div>
        <div>    const igstk::CoordinateSystemTransformToResult
          transformCarrier =</div>
        <div>      transformEvent->Get();</div>
        <div><br>
        </div>
        <div>    m_Transform = transformCarrier.GetTransform();</div>
        <div><br>
        </div>
        <div>    m_EventReceived = true;</div>
        <div>    } </div>
        <div>  bool GetEventReceived()</div>
        <div>    {</div>
        <div>    return m_EventReceived;</div>
        <div>    }</div>
        <div>  igstk::Transform GetTransform()</div>
        <div>    {</div>
        <div>    return m_Transform;</div>
        <div>    }  </div>
        <div>protected:</div>
        <div><br>
        </div>
        <div>  Landmark3DRegistrationGetTransformCallback()   </div>
        <div>    {</div>
        <div>    m_EventReceived = true;</div>
        <div>    }</div>
        <div>
          <br>
        </div>
        <div>private:</div>
        <div>  bool m_EventReceived;</div>
        <div>  igstk::Transform m_Transform;</div>
        <div>};</div>
        <div>// EndCodeSnippet</div>
        <div><br>
        </div>
        <div><br>
        </div>
        <div>// BeginLatex</div>
        <div>// </div>
        <div>// For more information on IGSTK events, see
          Chapter~\ref{Chapter:Events}.</div>
        <div>// After the helper classes are defined, the main function
          implementation </div>
        <div>// is started, as follows:</div>
        <div>//</div>
        <div>// EndLatex</div>
        <div><br>
        </div>
        <div>// BeginCodeSnippet</div>
        <div><br>
        </div>
        <div>
          <br>
        </div>
        <div> void LandmarkDLL::Rejestracja()</div>
        <div>{</div>
        <div><br>
        </div>
        <div><br>
        </div>
        <div><br>
        </div>
        <div>igstk::RealTimeClock::Initialize();</div>
        <div><br>
        </div>
        <div><br>
        </div>
        <div>// BeginLatex</div>
        <div>//</div>
        <div>// Next, all the necessary data types are defined:</div>
        <div>// </div>
        <div>// EndLatex</div>
        <div><br>
        </div>
        <div>// BeginCodeSnippet</div>
        <div>  typedef igstk::Object::LoggerType             LoggerType;</div>
        <div>  typedef itk::StdStreamLogOutput              
          LogOutputType;</div>
        <div>    </div>
        <div>  typedef igstk::Landmark3DRegistration</div>
        <div>                            Landmark3DRegistrationType;</div>
        <div>  typedef
          igstk::Landmark3DRegistration::LandmarkPointContainerType</div>
        <div>                            LandmarkPointContainerType;</div>
        <div>  typedef
          igstk::Landmark3DRegistration::LandmarkImagePointType </div>
        <div>                            LandmarkImagePointType;</div>
        <div>  typedef
          igstk::Landmark3DRegistration::LandmarkTrackerPointType</div>
        <div>                            LandmarkTrackerPointType;</div>
        <div>  typedef
          Landmark3DRegistrationType::TransformType::OutputVectorType </div>
        <div>                            OutputVectorType;</div>
        <div>  typedef igstk::Transform  TransformType;</div>
        <div>// EndCodeSnippet</div>
        <div>
          <br>
        </div>
        <div><br>
        </div>
        <div>// BeginLatex</div>
        <div>// </div>
        <div>// Then, the registration component is instantiated as
          follows:</div>
        <div>// </div>
        <div>// EndLatex</div>
        <div><br>
        </div>
        <div>// BeginCodeSnippet</div>
        <div>
            Landmark3DRegistrationType::Pointer landmarkRegister = </div>
        <div>                                       
          Landmark3DRegistrationType::New();</div>
        <div>// EndCodeSnippet</div>
        <div> </div>
        <div><br>
        </div>
        <div>// BeginLatex</div>
        <div>// </div>
        <div>// Next, the landmark containers that hold the landmark
          image and tracker </div>
        <div>// coordinates are instantiated:</div>
        <div>//</div>
        <div>// EndLatex</div>
        <div><br>
        </div>
        <div>// BeginCodeSnippet</div>
        <div>  LandmarkPointContainerType  imagePointContainer;</div>
        <div>  LandmarkPointContainerType  trackerPointContainer;</div>
        <div>// EndCodeSnippet</div>
        <div><br>
        </div>
        <div><br>
        </div>
        <div>  LandmarkImagePointType      imagePoint;</div>
        <div>  LandmarkTrackerPointType    trackerPoint;</div>
        <div><br>
        </div>
        <div>// BeginLatex</div>
        <div>// </div>
        <div>// Then, error event callback objects are instantiated and
          added to the observer</div>
        <div>// list of the registration component, as follows:</div>
        <div>//</div>
        <div>// EndLatex</div>
        <div><br>
        </div>
        <div>// BeginCodeSnippet</div>
        <div>  Landmark3DRegistrationInvalidRequestCallback::Pointer </div>
        <div>                  lrcb =
          Landmark3DRegistrationInvalidRequestCallback::New();</div>
        <div>    </div>
        <div>  typedef igstk::InvalidRequestErrorEvent
           InvalidRequestEvent;</div>
        <div><br>
        </div>
        <div>  landmarkRegister->AddObserver( InvalidRequestEvent(),
          lrcb );</div>
        <div><br>
        </div>
        <div>  Landmark3DRegistrationErrorCallback::Pointer ecb = </div>
        <div>                 
          Landmark3DRegistrationErrorCallback::New();</div>
        <div>  typedef
          igstk::Landmark3DRegistration::TransformComputationFailureEvent </div>
        <div>                                                   
           ComputationFailureEvent;</div>
        <div>  landmarkRegister->AddObserver(
          ComputationFailureEvent(), ecb );</div>
        <div><br>
        </div>
        <div>// EndCodeSnippet</div>
        <div><br>
        </div>
        <div>// BeginLatex</div>
        <div>// </div>
        <div>// A logger can then be connected to the registration
          component for </div>
        <div>// debugging purpose, as follows:</div>
        <div>//</div>
        <div>// EndLatex</div>
        <div><br>
        </div>
        <div><br>
        </div>
        <div>// BeginCodeSnippet </div>
        <div>  LoggerType::Pointer   logger = LoggerType::New();</div>
        <div>  LogOutputType::Pointer logOutput = LogOutputType::New();</div>
        <div>  logOutput->SetStream( std::cout );</div>
        <div>  logger->AddLogOutput( logOutput );</div>
        <div>  logger->SetPriorityLevel( LoggerType::DEBUG );</div>
        <div>  landmarkRegister->SetLogger( logger );</div>
        <div>
          // EndCodeSnippet</div>
        <div>   </div>
        <div><br>
        </div>
        <div><br>
        </div>
        <div><br>
        </div>
        <div>// BeginCodeSnippet</div>
        <div>  // Add 1st landmark</div>
        <div>  imagePoint[0] =  25.0;</div>
        <div>  imagePoint[1] =  1.0;</div>
        <div>  imagePoint[2] =  15.0;</div>
        <div>  imagePointContainer.push_back(imagePoint);</div>
        <div> 
          landmarkRegister->RequestAddImageLandmarkPoint(imagePoint);</div>
        <div><br>
        </div>
        <div>  trackerPoint[0] =  29.8;</div>
        <div>  trackerPoint[1] =  -5.3;</div>
        <div>
            trackerPoint[2] =  25.0;</div>
        <div>  trackerPointContainer.push_back(trackerPoint);</div>
        <div> 
          landmarkRegister->RequestAddTrackerLandmarkPoint(trackerPoint);</div>
        <div><br>
        </div>
        <div>  // Add 2nd landmark</div>
        <div>
            imagePoint[0] =  15.0;</div>
        <div>  imagePoint[1] =  21.0;</div>
        <div>  imagePoint[2] =  17.0;</div>
        <div>  imagePointContainer.push_back(imagePoint);</div>
        <div> 
          landmarkRegister->RequestAddImageLandmarkPoint(imagePoint);</div>
        <div>    </div>
        <div>  trackerPoint[0] =  35.0;</div>
        <div>  trackerPoint[1] =  16.5;</div>
        <div>  trackerPoint[2] =  27.0;</div>
        <div>  trackerPointContainer.push_back(trackerPoint);</div>
        <div> 
          landmarkRegister->RequestAddTrackerLandmarkPoint(trackerPoint);</div>
        <div><br>
        </div>
        <div>  // Add 3d landmark</div>
        <div>  imagePoint[0] =  14.0;</div>
        <div>  imagePoint[1] =  25.0;</div>
        <div>  imagePoint[2] =  11.0;</div>
        <div>  imagePointContainer.push_back(imagePoint);</div>
        <div> 
          landmarkRegister->RequestAddImageLandmarkPoint(imagePoint);</div>
        <div><br>
        </div>
        <div>  trackerPoint[0] =  36.8;</div>
        <div>  trackerPoint[1] =  20.0;</div>
        <div>  trackerPoint[2] =  21.0;</div>
        <div>  trackerPointContainer.push_back(trackerPoint);</div>
        <div> 
          landmarkRegister->RequestAddTrackerLandmarkPoint(trackerPoint);</div>
        <div><br>
        </div>
        <div>  // EndCodeSnippet</div>
        <div><br>
        </div>
        <div>  // BeginLatex</div>
        <div>  // </div>
        <div>  // More landmarks can be added for the transform
          computation.  </div>
        <div>  // </div>
        <div>  // EndLatex</div>
        <div>
          <br>
        </div>
        <div>  // Add 4th landmark</div>
        <div>  imagePoint[0] =  10.0;</div>
        <div>  imagePoint[1] =  11.0;</div>
        <div>  imagePoint[2] =  8.0;</div>
        <div>  imagePointContainer.push_back(imagePoint);</div>
        <div> 
          landmarkRegister->RequestAddImageLandmarkPoint(imagePoint);</div>
        <div><br>
        </div>
        <div>  trackerPoint[0] =  24.7;</div>
        <div>  trackerPoint[1] =  12.0;</div>
        <div>  trackerPoint[2] =  18.0;</div>
        <div>  trackerPointContainer.push_back(trackerPoint);</div>
        <div> 
          landmarkRegister->RequestAddTrackerLandmarkPoint(trackerPoint);</div>
        <div><br>
        </div>
        <div>  // BeginLatex</div>
        <div>  // </div>
        <div>  // After all landmark coordinates are added, the
          transform computation is </div>
        <div>  // requested as follows:</div>
        <div>  // </div>
        <div>  // EndLatex</div>
        <div><br>
        </div>
        <div>  // Calculate transform</div>
        <div><br>
        </div>
        <div>  // BeginCodeSnippet</div>
        <div>  landmarkRegister->RequestComputeTransform();</div>
        <div>  // EndCodeSnippet</div>
        <div>     </div>
        <div>  typedef itk::VersorRigid3DTransform<double>      
           VersorRigid3DTransformType;</div>
        <div>  typedef VersorRigid3DTransformType::ParametersType
          ParametersType;</div>
        <div><br>
        </div>
        <div>  TransformType      transform;</div>
        <div>  ParametersType     parameters(6);</div>
        <div><br>
        </div>
        <div>  // BeginLatex</div>
        <div>  // </div>
        <div>  // To access the transform parameters, a GetTransform
          callback is instantiated</div>
        <div>  // to observe the transform event, as follows: </div>
        <div>  // </div>
        <div>  // EndLatex</div>
        <div><br>
        </div>
        <div>  // BeginCodeSnippet</div>
        <div>  Landmark3DRegistrationGetTransformCallback::Pointer lrtcb
          =</div>
        <div>    Landmark3DRegistrationGetTransformCallback::New();</div>
        <div><br>
        </div>
        <div>  landmarkRegister->AddObserver( </div>
        <div>    igstk::CoordinateSystemTransformToEvent(), lrtcb );</div>
        <div>  //EndCodeSnippet</div>
        <div><br>
        </div>
        <div><br>
        </div>
        <div>  // BeginLatex</div>
        <div>  //</div>
        <div>  // To request that the registration component throw an
          event loaded with </div>
        <div>  // transform parameters, a \code{RequestGetTransform}
          function is invoked as </div>
        <div>  // follows:</div>
        <div>  // </div>
        <div>  // EndLatex</div>
        <div><br>
        </div>
        <div>  // BeginCodeSnippet</div>
        <div> 
          landmarkRegister->RequestGetTransformFromTrackerToImage();</div>
        <div>  std::cout << "Transform " << transform
          << std::cout;</div>
        <div>  // EndCodeSnippet</div>
        <div><br>
        </div>
        <div>  </div>
        <div>}</div>
        <div><br>
        </div>
        <div>}</div>
        <div style="font-weight: bold;">
-------------------------------------------------------------------------------------------------------</div>
      </div>
      <div>MainLandmark.cxx </div>
      <div><br>
      </div>
      <div>
        <div>#include <iostream></div>
        <div>#include "LandmarkDLL.h"</div>
        <div>#include "igstkLandmark3DRegistration.h"</div>
        <div><br>
        </div>
        <div> </div>
        <div><br>
        </div>
        <div>#include "igstkLogger.h"</div>
        <div>#include "itkStdStreamLogOutput.h"</div>
        <div>#include "itkObject.h"</div>
        <div>#include "itkCommand.h"</div>
        <div>#include "itkMacro.h"</div>
        <div>#include "igstkEvents.h"</div>
        <div>#include "igstkTransform.h"</div>
        <div>#include "igstkCoordinateSystemTransformToResult.h" </div>
        <div><br>
        </div>
        <div>using namespace std;</div>
      </div>
      <div><br>
      </div>
      <div>
        <div>int main()</div>
        <div>{</div>
        <div><span class="Apple-tab-span" style="white-space: pre;"> </span></div>
        <div><br>
        </div>
        <div><span class="Apple-tab-span" style="white-space: pre;"> </span>LandmarkD::LandmarkDLL::Rejestracja();</div>
        <div>    cout<<" Example
          LandmarkRegistration1"<<endl;</div>
        <div>    system("Pause");</div>
        <div><span class="Apple-tab-span" style="white-space: pre;"> </span></div>
        <div><span class="Apple-tab-span" style="white-space: pre;"> </span>return
          0;</div>
        <div>}</div>
      </div>
      <div><br>
      </div>
      <div><br>
      </div>
      <div><br>
      </div>
      <div>-----------------------------------------------</div>
      <div><br>
      </div>
      <div>Best,</div>
      <div><br>
      </div>
      <div>Agata </div>
      <div><br>
      </div>
      <pre wrap="">
<fieldset class="mimeAttachmentHeader"></fieldset>
_______________________________________________
Powered by <a class="moz-txt-link-abbreviated" href="http://www.kitware.com">www.kitware.com</a>

Visit other Kitware open-source projects at <a class="moz-txt-link-freetext" href="http://www.kitware.com/opensource/opensource.html">http://www.kitware.com/opensource/opensource.html</a>

Follow this link to subscribe/unsubscribe:
<a class="moz-txt-link-freetext" href="http://public.kitware.com/cgi-bin/mailman/listinfo/igstk-users">http://public.kitware.com/cgi-bin/mailman/listinfo/igstk-users</a></pre>
    </blockquote>
  </body>
</html>