<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
<title>ARToolKit API Documentation
</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
</head>
<body>
<!-- Generated by Doxygen 1.4.6 -->
<div class="tabs">
<ul>
<li><a href="index.html"><span>Main
Page
</span></a></li>
<li><a href="annotated.html"><span>Data
Structures
</span></a></li>
<li id="current"><a href="files.html"><span>Files
</span></a></li>
</ul></div>
<div class="tabs">
<ul>
<li><a href="files.html"><span>File
List
</span></a></li>
<li><a href="globals.html"><span>Globals
</span></a></li>
</ul></div>
<h1>arMulti.h File Reference
</h1>ARToolkit multi pattern subroutines.
<a href="#_details">More...
</a>
<p>
<code>#include
<stdio.h
></code><br>
<code>#include
<AR/config.h
></code><br>
<code>#include
<<a class="el" href="param_8h.html">AR/param.h
</a>></code><br>
<code>#include
<<a class="el" href="ar_8h.html">AR/ar.h
</a>></code><br>
<table border="0" cellpadding="0" cellspacing="0">
<tr><td></td></tr>
<tr><td colspan="2"><br><h2>Data Structures
</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">struct
</td><td class="memItemRight" valign="bottom"><a class="el" href="structARMultiEachMarkerInfoT.html">ARMultiEachMarkerInfoT
</a></td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">multi-marker structure
<a href="structARMultiEachMarkerInfoT.html#_details">More...
</a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">struct
</td><td class="memItemRight" valign="bottom"><a class="el" href="structARMultiMarkerInfoT.html">ARMultiMarkerInfoT
</a></td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">global multi-marker structure
<a href="structARMultiMarkerInfoT.html#_details">More...
</a><br></td></tr>
<tr><td colspan="2"><br><h2>Functions
</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="structARMultiMarkerInfoT.html">ARMultiMarkerInfoT
</a> *
</td><td class="memItemRight" valign="bottom"><a class="el" href="arMulti_8h.html#db0590bceb05c98697aa997c9bf01b9d">arMultiReadConfigFile
</a> (const char *filename)
</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">loading multi-markers description from a file
<a href="#db0590bceb05c98697aa997c9bf01b9d"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">double
</td><td class="memItemRight" valign="bottom"><a class="el" href="arMulti_8h.html#078ec7bb88028842dd6efd788a1f934b">arMultiGetTransMat
</a> (
<a class="el" href="structARMarkerInfo.html">ARMarkerInfo
</a> *marker_info, int marker_num,
<a class="el" href="structARMultiMarkerInfoT.html">ARMultiMarkerInfoT
</a> *config)
</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">compute camera position in function of the multi-marker patterns (based on detected markers)
<a href="#078ec7bb88028842dd6efd788a1f934b"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">int
</td><td class="memItemRight" valign="bottom"><a class="el" href="arMulti_8h.html#1d313592c277bbfb9352741aba8d031f">arMultiActivate
</a> (
<a class="el" href="structARMultiMarkerInfoT.html">ARMultiMarkerInfoT
</a> *config)
</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">activate a multi-marker pattern on the recognition procedure.
<a href="#1d313592c277bbfb9352741aba8d031f"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">int
</td><td class="memItemRight" valign="bottom"><a class="el" href="arMulti_8h.html#15c56f224029790ec26b33fb414441ca">arMultiDeactivate
</a> (
<a class="el" href="structARMultiMarkerInfoT.html">ARMultiMarkerInfoT
</a> *config)
</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Desactivate a multi-marker pattern on the recognition procedure.
<a href="#15c56f224029790ec26b33fb414441ca"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">int
</td><td class="memItemRight" valign="bottom"><a class="el" href="arMulti_8h.html#0f33d2031514e1b5af6ba4dfa152633f">arMultiFreeConfig
</a> (
<a class="el" href="structARMultiMarkerInfoT.html">ARMultiMarkerInfoT
</a> *config)
</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">remove a multi-marker pattern from memory.
<a href="#0f33d2031514e1b5af6ba4dfa152633f"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="ec96609a221602c7a64b3057bff58ea1"></a><!-- doxytag: member="arMulti.h::arsMultiGetTransMat" ref="ec96609a221602c7a64b3057bff58ea1" args="(ARMarkerInfo *marker_infoL, int marker_numL, ARMarkerInfo *marker_infoR, int marker_numR, ARMultiMarkerInfoT *config)" -->
double
</td><td class="memItemRight" valign="bottom"><b>arsMultiGetTransMat
</b> (
<a class="el" href="structARMarkerInfo.html">ARMarkerInfo
</a> *marker_infoL, int marker_numL,
<a class="el" href="structARMarkerInfo.html">ARMarkerInfo
</a> *marker_infoR, int marker_numR,
<a class="el" href="structARMultiMarkerInfoT.html">ARMultiMarkerInfoT
</a> *config)
</td></tr>
</table>
<hr><a name="_details"></a><h2>Detailed Description
</h2>
ARToolkit multi pattern subroutines.
<p>
This file extend ar core routines for multi-pattern tracking. You can obtain position of a local coordinate system based on the estimation of multiple markers tracking (each in relative position)
<p>
<dl compact><dt><b>Remarks:
</b></dt><dd>more efficient with uniform planar configuration
</dd></dl>
History :
<p>
<dl compact><dt><b>Author:
</b></dt><dd>Hirokazu Kato
<a href="mailto:kato@sys.im.hiroshima-cu.ac.jp">kato@sys.im.hiroshima-cu.ac.jp
</a> </dd></dl>
<dl compact><dt><b>Version:
</b></dt><dd>1.0
</dd></dl>
<dl compact><dt><b>Date:
</b></dt><dd>01/09/05
</dd></dl>
<hr><h2>Function Documentation
</h2>
<a class="anchor" name="1d313592c277bbfb9352741aba8d031f"></a><!-- doxytag: member="arMulti.h::arMultiActivate" ref="1d313592c277bbfb9352741aba8d031f" args="(ARMultiMarkerInfoT *config)" --><p>
<table class="mdTable" cellpadding="2" cellspacing="0">
<tr>
<td class="mdRow">
<table cellpadding="0" cellspacing="0" border="0">
<tr>
<td class="md" nowrap valign="top">int arMultiActivate
</td>
<td class="md" valign="top">(
</td>
<td class="md" nowrap valign="top"><a class="el" href="structARMultiMarkerInfoT.html">ARMultiMarkerInfoT
</a> *
</td>
<td class="mdname1" valign="top" nowrap> <em>config
</em> </td>
<td class="md" valign="top"> )
</td>
<td class="md" nowrap></td>
</tr>
</table>
</td>
</tr>
</table>
<table cellspacing="5" cellpadding="0" border="0">
<tr>
<td>
</td>
<td>
<p>
activate a multi-marker pattern on the recognition procedure.
<p>
Activate a multi-marker for be checking during the template matching operation.
<dl compact><dt><b>Parameters:
</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>config
</em> </td><td>pointer to the multi-marker
</td></tr>
</table>
</dl>
<dl compact><dt><b>Returns:
</b></dt><dd>0 if success, -1 if error
</dd></dl>
</td>
</tr>
</table>
<a class="anchor" name="15c56f224029790ec26b33fb414441ca"></a><!-- doxytag: member="arMulti.h::arMultiDeactivate" ref="15c56f224029790ec26b33fb414441ca" args="(ARMultiMarkerInfoT *config)" --><p>
<table class="mdTable" cellpadding="2" cellspacing="0">
<tr>
<td class="mdRow">
<table cellpadding="0" cellspacing="0" border="0">
<tr>
<td class="md" nowrap valign="top">int arMultiDeactivate
</td>
<td class="md" valign="top">(
</td>
<td class="md" nowrap valign="top"><a class="el" href="structARMultiMarkerInfoT.html">ARMultiMarkerInfoT
</a> *
</td>
<td class="mdname1" valign="top" nowrap> <em>config
</em> </td>
<td class="md" valign="top"> )
</td>
<td class="md" nowrap></td>
</tr>
</table>
</td>
</tr>
</table>
<table cellspacing="5" cellpadding="0" border="0">
<tr>
<td>
</td>
<td>
<p>
Desactivate a multi-marker pattern on the recognition procedure.
<p>
Desactivate a multi-marker for not be checking during the template matching operation.
<dl compact><dt><b>Parameters:
</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>config
</em> </td><td>pointer to the multi-marker
</td></tr>
</table>
</dl>
<dl compact><dt><b>Returns:
</b></dt><dd>0 if success, -1 if error
</dd></dl>
</td>
</tr>
</table>
<a class="anchor" name="0f33d2031514e1b5af6ba4dfa152633f"></a><!-- doxytag: member="arMulti.h::arMultiFreeConfig" ref="0f33d2031514e1b5af6ba4dfa152633f" args="(ARMultiMarkerInfoT *config)" --><p>
<table class="mdTable" cellpadding="2" cellspacing="0">
<tr>
<td class="mdRow">
<table cellpadding="0" cellspacing="0" border="0">
<tr>
<td class="md" nowrap valign="top">int arMultiFreeConfig
</td>
<td class="md" valign="top">(
</td>
<td class="md" nowrap valign="top"><a class="el" href="structARMultiMarkerInfoT.html">ARMultiMarkerInfoT
</a> *
</td>
<td class="mdname1" valign="top" nowrap> <em>config
</em> </td>
<td class="md" valign="top"> )
</td>
<td class="md" nowrap></td>
</tr>
</table>
</td>
</tr>
</table>
<table cellspacing="5" cellpadding="0" border="0">
<tr>
<td>
</td>
<td>
<p>
remove a multi-marker pattern from memory.
<p>
desactivate a pattern and remove it from memory. Post-condition of this function is unavailability of the multi-marker pattern.
<dl compact><dt><b>Parameters:
</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>config
</em> </td><td>pointer to the multi-marker
</td></tr>
</table>
</dl>
<dl compact><dt><b>Returns:
</b></dt><dd>0 if success, -1 if error
</dd></dl>
</td>
</tr>
</table>
<a class="anchor" name="078ec7bb88028842dd6efd788a1f934b"></a><!-- doxytag: member="arMulti.h::arMultiGetTransMat" ref="078ec7bb88028842dd6efd788a1f934b" args="(ARMarkerInfo *marker_info, int marker_num, ARMultiMarkerInfoT *config)" --><p>
<table class="mdTable" cellpadding="2" cellspacing="0">
<tr>
<td class="mdRow">
<table cellpadding="0" cellspacing="0" border="0">
<tr>
<td class="md" nowrap valign="top">double arMultiGetTransMat
</td>
<td class="md" valign="top">(
</td>
<td class="md" nowrap valign="top"><a class="el" href="structARMarkerInfo.html">ARMarkerInfo
</a> *
</td>
<td class="mdname" nowrap> <em>marker_info
</em>,
</td>
</tr>
<tr>
<td class="md" nowrap align="right"></td>
<td class="md"></td>
<td class="md" nowrap>int
</td>
<td class="mdname" nowrap> <em>marker_num
</em>,
</td>
</tr>
<tr>
<td class="md" nowrap align="right"></td>
<td class="md"></td>
<td class="md" nowrap><a class="el" href="structARMultiMarkerInfoT.html">ARMultiMarkerInfoT
</a> *
</td>
<td class="mdname" nowrap> <em>config
</em></td>
</tr>
<tr>
<td class="md"></td>
<td class="md">)
</td>
<td class="md" colspan="2"></td>
</tr>
</table>
</td>
</tr>
</table>
<table cellspacing="5" cellpadding="0" border="0">
<tr>
<td>
</td>
<td>
<p>
compute camera position in function of the multi-marker patterns (based on detected markers)
<p>
calculate the transformation between the multi-marker patterns and the real camera. Based on confident values of detected markers in the multi-markers patterns, a global position is return.
<p>
<dl compact><dt><b>Parameters:
</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>marker_info
</em> </td><td>list of detected markers (from arDetectMarker)
</td></tr>
<tr><td valign="top"></td><td valign="top"><em>marker_num
</em> </td><td>number of detected markers
</td></tr>
<tr><td valign="top"></td><td valign="top"><em>config
</em> </td><td></td></tr>
</table>
</dl>
<dl compact><dt><b>Returns:
</b></dt><dd></dd></dl>
</td>
</tr>
</table>
<a class="anchor" name="db0590bceb05c98697aa997c9bf01b9d"></a><!-- doxytag: member="arMulti.h::arMultiReadConfigFile" ref="db0590bceb05c98697aa997c9bf01b9d" args="(const char *filename)" --><p>
<table class="mdTable" cellpadding="2" cellspacing="0">
<tr>
<td class="mdRow">
<table cellpadding="0" cellspacing="0" border="0">
<tr>
<td class="md" nowrap valign="top"><a class="el" href="structARMultiMarkerInfoT.html">ARMultiMarkerInfoT
</a>* arMultiReadConfigFile
</td>
<td class="md" valign="top">(
</td>
<td class="md" nowrap valign="top">const char *
</td>
<td class="mdname1" valign="top" nowrap> <em>filename
</em> </td>
<td class="md" valign="top"> )
</td>
<td class="md" nowrap></td>
</tr>
</table>
</td>
</tr>
</table>
<table cellspacing="5" cellpadding="0" border="0">
<tr>
<td>
</td>
<td>
<p>
loading multi-markers description from a file
<p>
Load a configuration file for multi-markers tracking. The configuration file furnishs pointer to each pattern description.
<p>
<dl compact><dt><b>Parameters:
</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>filename
</em> </td><td>name of the pattern file
</td></tr>
</table>
</dl>
<dl compact><dt><b>Returns:
</b></dt><dd>a pattern structure, NULL if error
</dd></dl>
</td>
</tr>
</table>
<small>Generated with
<a href="http://www.doxygen.org/index.html">Doxygen
</a><br>
Copyright © 2004-2006. HIT Lab NZ. All Rights Reserved.
</small>
</body>
</html>