aboutsummaryrefslogtreecommitdiff
path: root/docs/doxygen/nel/a03129.html
diff options
context:
space:
mode:
Diffstat (limited to 'docs/doxygen/nel/a03129.html')
-rw-r--r--docs/doxygen/nel/a03129.html2774
1 files changed, 2774 insertions, 0 deletions
diff --git a/docs/doxygen/nel/a03129.html b/docs/doxygen/nel/a03129.html
new file mode 100644
index 00000000..d99301bf
--- /dev/null
+++ b/docs/doxygen/nel/a03129.html
@@ -0,0 +1,2774 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
+<title>NeL: NLLIGO::CPrimZone class Reference</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+</head><body>
+<!-- Generated by Doxygen 1.3.6 -->
+<div class="qindex"> <form class="search" action="search.php" method="get">
+<a class="qindex" href="main.html">Main&nbsp;Page</a> | <a class="qindex" href="namespaces.html">Namespace List</a> | <a class="qindex" href="hierarchy.html">Class&nbsp;Hierarchy</a> | <a class="qindex" href="classes.html">Alphabetical&nbsp;List</a> | <a class="qindex" href="annotated.html">Data&nbsp;Structures</a> | <a class="qindex" href="files.html">File&nbsp;List</a> | <a class="qindex" href="namespacemembers.html">Namespace&nbsp;Members</a> | <a class="qindex" href="functions.html">Data&nbsp;Fields</a> | <a class="qindex" href="globals.html">Globals</a> | <a class="qindex" href="pages.html">Related&nbsp;Pages</a> | <span class="search"><u>S</u>earch&nbsp;for&nbsp;<input class="search" type="text" name="query" value="" size="20" accesskey="s"/></span></form></div>
+<h1>NLLIGO::CPrimZone Class Reference</h1><code>#include &lt;<a class="el" href="a06196.html">primitive.h</a>&gt;</code>
+<p>
+<p>Inheritance diagram for NLLIGO::CPrimZone:
+<p><center><img src="a03129.png" usemap="#NLLIGO::CPrimZone_map" border="0" alt=""></center>
+<map name="NLLIGO::CPrimZone_map">
+<area href="a03123.html" alt="NLLIGO::IPrimitive" shape="rect" coords="0,56,127,80">
+<area href="a02540.html" alt="NLMISC::IClassable" shape="rect" coords="0,0,127,24">
+</map>
+<table border=0 cellpadding=0 cellspacing=0>
+<tr><td></td></tr>
+<tr><td colspan=2><br><h2>Public Types</h2></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top>enum &nbsp;</td><td class="memItemRight" valign=bottom>{ <a class="el" href="a03123.html#NLLIGO_1_1IPrimitivew0NLLIGO_1_1IPrimitivew2">NotAnArray</a>,
+<a class="el" href="a03123.html#NLLIGO_1_1IPrimitivew0NLLIGO_1_1IPrimitivew1">AtTheEnd</a> = 0xffffffff
+ }</td></tr>
+
+<tr><td colspan=2><br><h2>Public Member Functions</h2></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top>bool&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a03129.html#NLLIGO_1_1CPrimZonea0">contains</a> (const <a class="el" href="a03128.html">NLMISC::CVector</a> &amp;<a class="el" href="a04223.html#a576">v</a>, float &amp;distance, <a class="el" href="a03128.html">NLMISC::CVector</a> &amp;nearPos, bool isPath) const </td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>bool&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a03129.html#NLLIGO_1_1CPrimZonea1">contains</a> (const <a class="el" href="a03128.html">NLMISC::CVector</a> &amp;<a class="el" href="a04223.html#a576">v</a>) const </td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a03129.html#NLLIGO_1_1CPrimZonea2">getAABox</a> (<a class="el" href="a03128.html">NLMISC::CVector</a> &amp;cornerMin, <a class="el" href="a03128.html">NLMISC::CVector</a> &amp;cornerMax) const </td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns the smallest axis-aligned box containing the zone. <a href="#NLLIGO_1_1CPrimZonea2"></a><br><br></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="a03128.html">NLMISC::CVector</a>&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a03129.html#NLLIGO_1_1CPrimZonea3">getBarycentre</a> () const </td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns the barycenter of the zone (warning, it may be outside of the zone if it is not convex). Returns CVector::Null if there is no vertex. <a href="#NLLIGO_1_1CPrimZonea3"></a><br><br></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top>virtual std::string&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02540.html#NL3D_1_1ITrackKeyFramer_3_01CKeyVector_01_4a6">getClassName</a> ()=0</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a03129.html#NLLIGO_1_1CPrimZonea5">NLMISC_DECLARE_CLASS</a> (<a class="el" href="a03129.html">CPrimZone</a>)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a03129.html#NLLIGO_1_1CPrimZonea6">serial</a> (<a class="el" href="a02270.html">NLMISC::IStream</a> &amp;f)</td></tr>
+
+<tr><td colspan="2"><div class="groupHeader">Hierarchy</div></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top>bool&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a03123.html#NLLIGO_1_1IPrimitivez1899_0">getChild</a> (<a class="el" href="a03123.html">IPrimitive</a> *&amp;result, <a class="el" href="a04558.html#a15">uint</a> childId)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>bool&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a03123.html#NLLIGO_1_1IPrimitivez1899_1">getChild</a> (const <a class="el" href="a03123.html">IPrimitive</a> *&amp;result, <a class="el" href="a04558.html#a15">uint</a> childId) const </td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>bool&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a03123.html#NLLIGO_1_1IPrimitivez1899_2">getChildId</a> (<a class="el" href="a04558.html#a15">uint</a> &amp;childId, const <a class="el" href="a03123.html">IPrimitive</a> *child) const </td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="a04558.html#a15">uint</a>&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a03123.html#NLLIGO_1_1IPrimitivez1899_3">getNumChildren</a> () const </td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>const <a class="el" href="a03123.html">IPrimitive</a> *&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a03123.html#NLLIGO_1_1IPrimitivez1899_4">getParent</a> () const </td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="a03123.html">IPrimitive</a> *&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a03123.html#NLLIGO_1_1IPrimitivez1899_5">getParent</a> ()</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>bool&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a03123.html#NLLIGO_1_1IPrimitivez1899_6">insertChild</a> (<a class="el" href="a03123.html">IPrimitive</a> *primitive, <a class="el" href="a04558.html#a15">uint</a> <a class="el" href="a04223.html#a566">index</a>=AtTheEnd)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>bool&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a03123.html#NLLIGO_1_1IPrimitivez1899_10">removeChild</a> (<a class="el" href="a04558.html#a15">uint</a> childId)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a03123.html#NLLIGO_1_1IPrimitivez1899_11">removeChildren</a> ()</td></tr>
+
+<tr><td colspan="2"><div class="groupHeader">Properties</div></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top>bool&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a03123.html#NLLIGO_1_1IPrimitivez1900_0">addPropertyByName</a> (const char *property_name, <a class="el" href="a03131.html">IProperty</a> *result)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="a04558.html#a15">uint</a>&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a03123.html#NLLIGO_1_1IPrimitivez1900_2">getNumProperty</a> () const </td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>bool&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a03123.html#NLLIGO_1_1IPrimitivez1900_6">getProperty</a> (<a class="el" href="a04558.html#a15">uint</a> <a class="el" href="a04223.html#a566">index</a>, std::string &amp;property_name, <a class="el" href="a03131.html">IProperty</a> *&amp;result)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>bool&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a03123.html#NLLIGO_1_1IPrimitivez1900_7">getProperty</a> (<a class="el" href="a04558.html#a15">uint</a> <a class="el" href="a04223.html#a566">index</a>, std::string &amp;property_name, const <a class="el" href="a03131.html">IProperty</a> *&amp;result) const </td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>bool&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a03123.html#NLLIGO_1_1IPrimitivez1900_8">getPropertyByName</a> (const char *property_name, <a class="el" href="a03337.html">NLMISC::CRGBA</a> &amp;result) const </td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>bool&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a03123.html#NLLIGO_1_1IPrimitivez1900_9">getPropertyByName</a> (const char *property_name, const std::vector&lt; std::string &gt; *&amp;result) const </td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>bool&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a03123.html#NLLIGO_1_1IPrimitivez1900_10">getPropertyByName</a> (const char *property_name, std::string &amp;result) const </td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>bool&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a03123.html#NLLIGO_1_1IPrimitivez1900_11">getPropertyByName</a> (const char *property_name, std::vector&lt; std::string &gt; *&amp;result) const </td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>bool&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a03123.html#NLLIGO_1_1IPrimitivez1900_12">getPropertyByName</a> (const char *property_name, std::string *&amp;result) const </td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>bool&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a03123.html#NLLIGO_1_1IPrimitivez1900_13">getPropertyByName</a> (const char *property_name, <a class="el" href="a03131.html">IProperty</a> *&amp;result) const </td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>bool&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a03123.html#NLLIGO_1_1IPrimitivez1900_14">getPropertyByName</a> (const char *property_name, const <a class="el" href="a03131.html">IProperty</a> *&amp;result) const </td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a03123.html#NLLIGO_1_1IPrimitivez1900_16">removeProperties</a> ()</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>bool&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a03123.html#NLLIGO_1_1IPrimitivez1900_17">removeProperty</a> (<a class="el" href="a04558.html#a15">uint</a> <a class="el" href="a04223.html#a566">index</a>)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>bool&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a03123.html#NLLIGO_1_1IPrimitivez1900_18">removePropertyByName</a> (const char *property_name)</td></tr>
+
+<tr><td colspan="2"><div class="groupHeader">Hierarchy</div></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top>bool&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a03123.html#NLLIGO_1_1IPrimitivez1899_0">getChild</a> (<a class="el" href="a03123.html">IPrimitive</a> *&amp;result, <a class="el" href="a04558.html#a15">uint</a> childId)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>bool&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a03123.html#NLLIGO_1_1IPrimitivez1899_1">getChild</a> (const <a class="el" href="a03123.html">IPrimitive</a> *&amp;result, <a class="el" href="a04558.html#a15">uint</a> childId) const </td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>bool&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a03123.html#NLLIGO_1_1IPrimitivez1899_2">getChildId</a> (<a class="el" href="a04558.html#a15">uint</a> &amp;childId, const <a class="el" href="a03123.html">IPrimitive</a> *child) const </td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="a04558.html#a15">uint</a>&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a03123.html#NLLIGO_1_1IPrimitivez1899_3">getNumChildren</a> () const </td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>const <a class="el" href="a03123.html">IPrimitive</a> *&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a03123.html#NLLIGO_1_1IPrimitivez1899_4">getParent</a> () const </td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="a03123.html">IPrimitive</a> *&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a03123.html#NLLIGO_1_1IPrimitivez1899_5">getParent</a> ()</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>bool&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a03123.html#NLLIGO_1_1IPrimitivez1899_6">insertChild</a> (<a class="el" href="a03123.html">IPrimitive</a> *primitive, <a class="el" href="a04558.html#a15">uint</a> <a class="el" href="a04223.html#a566">index</a>=AtTheEnd)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>bool&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a03123.html#NLLIGO_1_1IPrimitivez1899_10">removeChild</a> (<a class="el" href="a04558.html#a15">uint</a> childId)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a03123.html#NLLIGO_1_1IPrimitivez1899_11">removeChildren</a> ()</td></tr>
+
+<tr><td colspan="2"><div class="groupHeader">Properties</div></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top>bool&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a03123.html#NLLIGO_1_1IPrimitivez1900_0">addPropertyByName</a> (const char *property_name, <a class="el" href="a03131.html">IProperty</a> *result)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="a04558.html#a15">uint</a>&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a03123.html#NLLIGO_1_1IPrimitivez1900_2">getNumProperty</a> () const </td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>bool&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a03123.html#NLLIGO_1_1IPrimitivez1900_6">getProperty</a> (<a class="el" href="a04558.html#a15">uint</a> <a class="el" href="a04223.html#a566">index</a>, std::string &amp;property_name, <a class="el" href="a03131.html">IProperty</a> *&amp;result)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>bool&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a03123.html#NLLIGO_1_1IPrimitivez1900_7">getProperty</a> (<a class="el" href="a04558.html#a15">uint</a> <a class="el" href="a04223.html#a566">index</a>, std::string &amp;property_name, const <a class="el" href="a03131.html">IProperty</a> *&amp;result) const </td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>bool&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a03123.html#NLLIGO_1_1IPrimitivez1900_8">getPropertyByName</a> (const char *property_name, <a class="el" href="a03337.html">NLMISC::CRGBA</a> &amp;result) const </td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>bool&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a03123.html#NLLIGO_1_1IPrimitivez1900_9">getPropertyByName</a> (const char *property_name, const std::vector&lt; std::string &gt; *&amp;result) const </td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>bool&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a03123.html#NLLIGO_1_1IPrimitivez1900_10">getPropertyByName</a> (const char *property_name, std::string &amp;result) const </td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>bool&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a03123.html#NLLIGO_1_1IPrimitivez1900_11">getPropertyByName</a> (const char *property_name, std::vector&lt; std::string &gt; *&amp;result) const </td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>bool&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a03123.html#NLLIGO_1_1IPrimitivez1900_12">getPropertyByName</a> (const char *property_name, std::string *&amp;result) const </td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>bool&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a03123.html#NLLIGO_1_1IPrimitivez1900_13">getPropertyByName</a> (const char *property_name, <a class="el" href="a03131.html">IProperty</a> *&amp;result) const </td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>bool&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a03123.html#NLLIGO_1_1IPrimitivez1900_14">getPropertyByName</a> (const char *property_name, const <a class="el" href="a03131.html">IProperty</a> *&amp;result) const </td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a03123.html#NLLIGO_1_1IPrimitivez1900_16">removeProperties</a> ()</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>bool&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a03123.html#NLLIGO_1_1IPrimitivez1900_17">removeProperty</a> (<a class="el" href="a04558.html#a15">uint</a> <a class="el" href="a04223.html#a566">index</a>)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>bool&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a03123.html#NLLIGO_1_1IPrimitivez1900_18">removePropertyByName</a> (const char *property_name)</td></tr>
+
+<tr><td colspan="2"><div class="groupHeader">Hierarchy</div></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top>bool&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a03123.html#NLLIGO_1_1IPrimitivez1899_0">getChild</a> (<a class="el" href="a03123.html">IPrimitive</a> *&amp;result, <a class="el" href="a04558.html#a15">uint</a> childId)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>bool&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a03123.html#NLLIGO_1_1IPrimitivez1899_1">getChild</a> (const <a class="el" href="a03123.html">IPrimitive</a> *&amp;result, <a class="el" href="a04558.html#a15">uint</a> childId) const </td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>bool&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a03123.html#NLLIGO_1_1IPrimitivez1899_2">getChildId</a> (<a class="el" href="a04558.html#a15">uint</a> &amp;childId, const <a class="el" href="a03123.html">IPrimitive</a> *child) const </td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="a04558.html#a15">uint</a>&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a03123.html#NLLIGO_1_1IPrimitivez1899_3">getNumChildren</a> () const </td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>const <a class="el" href="a03123.html">IPrimitive</a> *&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a03123.html#NLLIGO_1_1IPrimitivez1899_4">getParent</a> () const </td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="a03123.html">IPrimitive</a> *&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a03123.html#NLLIGO_1_1IPrimitivez1899_5">getParent</a> ()</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>bool&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a03123.html#NLLIGO_1_1IPrimitivez1899_6">insertChild</a> (<a class="el" href="a03123.html">IPrimitive</a> *primitive, <a class="el" href="a04558.html#a15">uint</a> <a class="el" href="a04223.html#a566">index</a>=AtTheEnd)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>bool&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a03123.html#NLLIGO_1_1IPrimitivez1899_10">removeChild</a> (<a class="el" href="a04558.html#a15">uint</a> childId)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a03123.html#NLLIGO_1_1IPrimitivez1899_11">removeChildren</a> ()</td></tr>
+
+<tr><td colspan="2"><div class="groupHeader">Properties</div></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top>bool&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a03123.html#NLLIGO_1_1IPrimitivez1900_0">addPropertyByName</a> (const char *property_name, <a class="el" href="a03131.html">IProperty</a> *result)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="a04558.html#a15">uint</a>&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a03123.html#NLLIGO_1_1IPrimitivez1900_2">getNumProperty</a> () const </td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>bool&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a03123.html#NLLIGO_1_1IPrimitivez1900_6">getProperty</a> (<a class="el" href="a04558.html#a15">uint</a> <a class="el" href="a04223.html#a566">index</a>, std::string &amp;property_name, <a class="el" href="a03131.html">IProperty</a> *&amp;result)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>bool&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a03123.html#NLLIGO_1_1IPrimitivez1900_7">getProperty</a> (<a class="el" href="a04558.html#a15">uint</a> <a class="el" href="a04223.html#a566">index</a>, std::string &amp;property_name, const <a class="el" href="a03131.html">IProperty</a> *&amp;result) const </td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>bool&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a03123.html#NLLIGO_1_1IPrimitivez1900_8">getPropertyByName</a> (const char *property_name, <a class="el" href="a03337.html">NLMISC::CRGBA</a> &amp;result) const </td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>bool&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a03123.html#NLLIGO_1_1IPrimitivez1900_9">getPropertyByName</a> (const char *property_name, const std::vector&lt; std::string &gt; *&amp;result) const </td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>bool&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a03123.html#NLLIGO_1_1IPrimitivez1900_10">getPropertyByName</a> (const char *property_name, std::string &amp;result) const </td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>bool&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a03123.html#NLLIGO_1_1IPrimitivez1900_11">getPropertyByName</a> (const char *property_name, std::vector&lt; std::string &gt; *&amp;result) const </td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>bool&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a03123.html#NLLIGO_1_1IPrimitivez1900_12">getPropertyByName</a> (const char *property_name, std::string *&amp;result) const </td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>bool&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a03123.html#NLLIGO_1_1IPrimitivez1900_13">getPropertyByName</a> (const char *property_name, <a class="el" href="a03131.html">IProperty</a> *&amp;result) const </td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>bool&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a03123.html#NLLIGO_1_1IPrimitivez1900_14">getPropertyByName</a> (const char *property_name, const <a class="el" href="a03131.html">IProperty</a> *&amp;result) const </td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a03123.html#NLLIGO_1_1IPrimitivez1900_16">removeProperties</a> ()</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>bool&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a03123.html#NLLIGO_1_1IPrimitivez1900_17">removeProperty</a> (<a class="el" href="a04558.html#a15">uint</a> <a class="el" href="a04223.html#a566">index</a>)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>bool&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a03123.html#NLLIGO_1_1IPrimitivez1900_18">removePropertyByName</a> (const char *property_name)</td></tr>
+
+<tr><td colspan="2"><div class="groupHeader">Hierarchy</div></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top>bool&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a03123.html#NLLIGO_1_1IPrimitivez1899_0">getChild</a> (<a class="el" href="a03123.html">IPrimitive</a> *&amp;result, <a class="el" href="a04558.html#a15">uint</a> childId)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>bool&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a03123.html#NLLIGO_1_1IPrimitivez1899_1">getChild</a> (const <a class="el" href="a03123.html">IPrimitive</a> *&amp;result, <a class="el" href="a04558.html#a15">uint</a> childId) const </td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>bool&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a03123.html#NLLIGO_1_1IPrimitivez1899_2">getChildId</a> (<a class="el" href="a04558.html#a15">uint</a> &amp;childId, const <a class="el" href="a03123.html">IPrimitive</a> *child) const </td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="a04558.html#a15">uint</a>&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a03123.html#NLLIGO_1_1IPrimitivez1899_3">getNumChildren</a> () const </td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>const <a class="el" href="a03123.html">IPrimitive</a> *&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a03123.html#NLLIGO_1_1IPrimitivez1899_4">getParent</a> () const </td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="a03123.html">IPrimitive</a> *&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a03123.html#NLLIGO_1_1IPrimitivez1899_5">getParent</a> ()</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>bool&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a03123.html#NLLIGO_1_1IPrimitivez1899_6">insertChild</a> (<a class="el" href="a03123.html">IPrimitive</a> *primitive, <a class="el" href="a04558.html#a15">uint</a> <a class="el" href="a04223.html#a566">index</a>=AtTheEnd)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>bool&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a03123.html#NLLIGO_1_1IPrimitivez1899_10">removeChild</a> (<a class="el" href="a04558.html#a15">uint</a> childId)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a03123.html#NLLIGO_1_1IPrimitivez1899_11">removeChildren</a> ()</td></tr>
+
+<tr><td colspan=2><br><h2>Static Public Member Functions</h2></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top>bool&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a03129.html#NLLIGO_1_1CPrimZonee0">contains</a> (const <a class="el" href="a03128.html">NLMISC::CVector</a> &amp;<a class="el" href="a04223.html#a576">v</a>, const std::vector&lt; <a class="el" href="a03127.html">CPrimVector</a> &gt; &amp;points, float &amp;distance, <a class="el" href="a03128.html">NLMISC::CVector</a> &amp;nearPos, bool isPath)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>bool&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a03129.html#NLLIGO_1_1CPrimZonee1">contains</a> (const <a class="el" href="a03128.html">NLMISC::CVector</a> &amp;<a class="el" href="a04223.html#a576">v</a>, const std::vector&lt; <a class="el" href="a03127.html">CPrimVector</a> &gt; &amp;points)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>bool&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a03129.html#NLLIGO_1_1CPrimZonee2">contains</a> (const <a class="el" href="a03128.html">NLMISC::CVector</a> &amp;<a class="el" href="a04223.html#a576">v</a>, const std::vector&lt; <a class="el" href="a03128.html">NLMISC::CVector</a> &gt; &amp;points, float &amp;distance, <a class="el" href="a03128.html">NLMISC::CVector</a> &amp;nearPos, bool isPath)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>bool&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a03129.html#NLLIGO_1_1CPrimZonee3">contains</a> (const <a class="el" href="a03128.html">NLMISC::CVector</a> &amp;<a class="el" href="a04223.html#a576">v</a>, const std::vector&lt; <a class="el" href="a03128.html">NLMISC::CVector</a> &gt; &amp;points)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>float&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a03129.html#NLLIGO_1_1CPrimZonee4">getSegmentDist</a> (const <a class="el" href="a03128.html">NLMISC::CVector</a> <a class="el" href="a04223.html#a576">v</a>, const <a class="el" href="a03128.html">NLMISC::CVector</a> &amp;p1, const <a class="el" href="a03128.html">NLMISC::CVector</a> &amp;p2, <a class="el" href="a03128.html">NLMISC::CVector</a> &amp;nearPos)</td></tr>
+
+<tr><td colspan=2><br><h2>Data Fields</h2></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top>bool&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a03123.html#NLLIGO_1_1IPrimitiveo0">Expanded</a></td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>std::string&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a03123.html#NLLIGO_1_1IPrimitiveo1">Layer</a></td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>std::string&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a03123.html#NLLIGO_1_1IPrimitiveo2">Name</a></td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>std::vector&lt; <a class="el" href="a03127.html">CPrimVector</a> &gt;&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a03129.html#NLLIGO_1_1CPrimZoneo3">VPoints</a></td></tr>
+
+<tr><td colspan=2><br><h2>Private Member Functions</h2></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top>virtual <a class="el" href="a03123.html">IPrimitive</a> *&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a03129.html#NLLIGO_1_1CPrimZoned0">copy</a> () const </td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>virtual <a class="el" href="a04558.html#a15">uint</a>&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a03129.html#NLLIGO_1_1CPrimZoned1">getNumVector</a> () const </td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>virtual <a class="el" href="a03127.html">CPrimVector</a> *&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a03129.html#NLLIGO_1_1CPrimZoned2">getPrimVector</a> ()</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>virtual const <a class="el" href="a03127.html">CPrimVector</a> *&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a03129.html#NLLIGO_1_1CPrimZoned3">getPrimVector</a> () const </td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>virtual bool&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a03129.html#NLLIGO_1_1CPrimZoned4">read</a> (xmlNodePtr xmlNode, const char *<a class="el" href="a04560.html#a1">filename</a>, <a class="el" href="a04558.html#a15">uint</a> version, <a class="el" href="a02756.html">CLigoConfig</a> &amp;config)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>virtual void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a03129.html#NLLIGO_1_1CPrimZoned5">write</a> (xmlNodePtr xmlNode, const char *<a class="el" href="a04560.html#a1">filename</a>) const </td></tr>
+
+</table>
+<hr><h2>Member Enumeration Documentation</h2>
+<a class="anchor" name="NLLIGO_1_1IPrimitivew0" doxytag="NLLIGO::CPrimZone::@66" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> anonymous enum<code> [inherited]</code>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+<dl compact><dt><b>Enumeration values: </b></dt><dd>
+<table border=0 cellspacing=2 cellpadding=0>
+<tr><td valign=top><em><a class="anchor" name="NLLIGO_1_1IPrimitivew0NLLIGO_1_1IPrimitivew2" doxytag="NotAnArray" ></a>NotAnArray</em>&nbsp;</td><td>
+</td></tr>
+<tr><td valign=top><em><a class="anchor" name="NLLIGO_1_1IPrimitivew0NLLIGO_1_1IPrimitivew1" doxytag="AtTheEnd" ></a>AtTheEnd</em>&nbsp;</td><td>
+</td></tr>
+</table>
+</dl>
+
+<p>
+Definition at line <a class="el" href="a06196.html#l00165">165</a> of file <a class="el" href="a06196.html">primitive.h</a>.
+<p>
+<div class="fragment"><pre>00166 {
+00167 <a class="code" href="a03123.html#NLLIGO_1_1IPrimitivew0NLLIGO_1_1IPrimitivew2">NotAnArray</a>,
+00168 <a class="code" href="a03123.html#NLLIGO_1_1IPrimitivew0NLLIGO_1_1IPrimitivew1">AtTheEnd</a> = 0xffffffff,
+00169 };
+</pre></div> </td>
+ </tr>
+</table>
+<hr><h2>Member Function Documentation</h2>
+<a class="anchor" name="NLLIGO_1_1IPrimitivez1900_0" doxytag="NLLIGO::CPrimZone::addPropertyByName" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> bool NLLIGO::IPrimitive::addPropertyByName </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top">const char *&nbsp;</td>
+ <td class="mdname" nowrap> <em>property_name</em>, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td></td>
+ <td class="md" nowrap><a class="el" href="a03131.html">IProperty</a> *&nbsp;</td>
+ <td class="mdname" nowrap> <em>result</em></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td class="md">)&nbsp;</td>
+ <td class="md" colspan="2"><code> [inherited]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Add a property If the property already exist, the method does nothing and returns false. The pointer will be deleted by the primitive using the ::delete operator.
+<p>
+Definition at line <a class="el" href="a06195.html#l01384">1384</a> of file <a class="el" href="a06195.html">primitive.cpp</a>.
+<p>
+References <a class="el" href="a06196.html#l00326">NLLIGO::IPrimitive::_Properties</a>.
+<p>
+Referenced by <a class="el" href="a06195.html#l01839">NLLIGO::CPrimitives::convertAddPrimitive()</a>, <a class="el" href="a06195.html#l01910">NLLIGO::CPrimitives::convertPrimitive()</a>, and <a class="el" href="a06195.html#l01396">NLLIGO::IPrimitive::read()</a>.
+<p>
+<div class="fragment"><pre>01385 {
+01386 <span class="keywordtype">bool</span> inserted = _Properties.insert (std::map&lt;std::string, IProperty*&gt;::value_type (property_name, result)).second;
+01387 <span class="keywordflow">if</span> (inserted)
+01388 {
+01389 <span class="keywordflow">return</span> <span class="keyword">true</span>;
+01390 }
+01391 <span class="keywordflow">return</span> <span class="keyword">false</span>;
+01392 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NLLIGO_1_1CPrimZonee0" doxytag="NLLIGO::CPrimZone::contains" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> bool NLLIGO::CPrimZone::contains </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top">const <a class="el" href="a03128.html">NLMISC::CVector</a> &amp;&nbsp;</td>
+ <td class="mdname" nowrap> <em>v</em>, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td></td>
+ <td class="md" nowrap>const std::vector&lt; <a class="el" href="a03127.html">CPrimVector</a> &gt; &amp;&nbsp;</td>
+ <td class="mdname" nowrap> <em>points</em>, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td></td>
+ <td class="md" nowrap>float &amp;&nbsp;</td>
+ <td class="mdname" nowrap> <em>distance</em>, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td></td>
+ <td class="md" nowrap><a class="el" href="a03128.html">NLMISC::CVector</a> &amp;&nbsp;</td>
+ <td class="mdname" nowrap> <em>nearPos</em>, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td></td>
+ <td class="md" nowrap>bool&nbsp;</td>
+ <td class="mdname" nowrap> <em>isPath</em></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td class="md">)&nbsp;</td>
+ <td class="md" colspan="2"><code> [static]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="a06195.html#l00649">649</a> of file <a class="el" href="a06195.html">primitive.cpp</a>.
+<p>
+References <a class="el" href="a06195.html#l00847">getSegmentDist()</a>, <a class="el" href="a05788.html#l00056">H_AUTO</a>, <a class="el" href="a05484.html#l00038">min</a>, <a class="el" href="a05981.html#l00105">uint</a>, <a class="el" href="a05981.html#l00100">uint32</a>, and <a class="el" href="a05646.html#l00237">v</a>.
+<p>
+<div class="fragment"><pre>00650 {
+00651 <a class="code" href="a04365.html#a4">H_AUTO</a>(NLLIGO_Contains1)
+00652 <a class="code" href="a04558.html#a11">uint32</a> i;
+00653 CVector vMin, vMax;
+00654 <span class="keywordtype">float</span> nearest = FLT_MAX;
+00655 CVector pos;
+00656
+00657 <span class="comment">// Point or line can't contains !</span>
+00658 <span class="keywordflow">if</span> (points.size() &lt; 3 || isPath)
+00659 {
+00660 <span class="comment">// only compute the distance.</span>
+00661 <span class="keywordflow">if</span> (points.size() == 1)
+00662 {
+00663 distance = (points[0] - <a class="code" href="a04223.html#a576">v</a>).norm();
+00664 nearPos = points[0];
+00665 }
+00666 <span class="keywordflow">else</span> <span class="keywordflow">if</span> (points.size() == 2)
+00667 {
+00668 distance = <a class="code" href="a03129.html#NLLIGO_1_1CPrimZonee4">getSegmentDist</a>(v, points[0], points[1], nearPos);
+00669 }
+00670 <span class="keywordflow">else</span>
+00671 {
+00672 <span class="comment">// compute nearest segment</span>
+00673 <span class="keywordflow">for</span> (i = 0; i &lt; points.size()-1; ++i)
+00674 {
+00675 <span class="keyword">const</span> CVector &amp;p1 = points[i];
+00676 <span class="keyword">const</span> CVector &amp;p2 = points[i+1];
+00677
+00678 <span class="keywordtype">float</span> dist = <a class="code" href="a03129.html#NLLIGO_1_1CPrimZonee4">getSegmentDist</a>(v, p1, p2, pos);
+00679 <span class="keywordflow">if</span>( dist &lt; nearest)
+00680 {
+00681 nearest = dist;
+00682 nearPos = pos;
+00683 }
+00684 }
+00685 distance = nearest;
+00686 }
+00687 <span class="keywordflow">return</span> <span class="keyword">false</span>;
+00688 }
+00689
+00690 <span class="comment">// Get the bounding rectangle of the zone</span>
+00691 vMax = vMin = points[0];
+00692 <span class="keywordflow">for</span> (i = 0; i &lt; points.size(); ++i)
+00693 {
+00694 vMin.x = <a class="code" href="a04061.html#a0">min</a>(vMin.x, points[i].x);
+00695 vMin.y = <a class="code" href="a04061.html#a0">min</a>(vMin.y, points[i].y);
+00696 vMax.x = max(vMax.x, points[i].x);
+00697 vMax.y = max(vMax.y, points[i].y);
+00698 }
+00699
+00700 <span class="keywordflow">if</span> ((<a class="code" href="a04223.html#a576">v</a>.x &lt; vMin.x) || (<a class="code" href="a04223.html#a576">v</a>.y &lt; vMin.y) || (<a class="code" href="a04223.html#a576">v</a>.x &gt; vMax.x) || (<a class="code" href="a04223.html#a576">v</a>.y &gt; vMax.y))
+00701 {
+00702 <span class="comment">// find the nearest distance of all segment</span>
+00703 <span class="keywordflow">for</span> (<a class="code" href="a04558.html#a15">uint</a> i=0; i&lt;points.size(); ++i)
+00704 {
+00705 <span class="keywordtype">float</span> dist = <a class="code" href="a03129.html#NLLIGO_1_1CPrimZonee4">getSegmentDist</a>(v, points[i], points[(i+1) % points.size()], pos);
+00706
+00707 <span class="keywordflow">if</span> (dist &lt; nearest)
+00708 {
+00709 nearest = dist;
+00710 nearPos = pos;
+00711 }
+00712 }
+00713 distance = nearest;
+00714 <span class="keywordflow">return</span> <span class="keyword">false</span>;
+00715 }
+00716
+00717 <a class="code" href="a04558.html#a11">uint32</a> nNbIntersection = 0;
+00718 <span class="keywordflow">for</span> (i = 0; i &lt; points.size(); ++i)
+00719 {
+00720 <span class="keyword">const</span> CVector &amp;p1 = points[i];
+00721 <span class="keyword">const</span> CVector &amp;p2 = points[(i+1)%points.size()];
+00722
+00723 <span class="keywordtype">float</span> dist = <a class="code" href="a03129.html#NLLIGO_1_1CPrimZonee4">getSegmentDist</a>(v, p1, p2, pos);
+00724 <span class="keywordflow">if</span>( dist &lt; nearest)
+00725 {
+00726 nearest = dist;
+00727 nearPos = pos;
+00728 }
+00729
+00730 <span class="keywordflow">if</span> (((p1.y-<a class="code" href="a04223.html#a576">v</a>.y) &lt;= 0.0)&amp;&amp;((p2.y-<a class="code" href="a04223.html#a576">v</a>.y) &lt;= 0.0))
+00731 <span class="keywordflow">continue</span>;
+00732 <span class="keywordflow">if</span> (((p1.y-<a class="code" href="a04223.html#a576">v</a>.y) &gt; 0.0)&amp;&amp;((p2.y-<a class="code" href="a04223.html#a576">v</a>.y) &gt; 0.0))
+00733 <span class="keywordflow">continue</span>;
+00734 <span class="keywordtype">float</span> xinter = p1.x + (p2.x-p1.x) * ((<a class="code" href="a04223.html#a576">v</a>.y-p1.y)/(p2.y-p1.y));
+00735 <span class="keywordflow">if</span> (xinter &gt; <a class="code" href="a04223.html#a576">v</a>.x)
+00736 ++nNbIntersection;
+00737 }
+00738
+00739 distance = nearest;
+00740 <span class="keywordflow">if</span> ((nNbIntersection&amp;1) == 1) <span class="comment">// odd intersections so the vertex is inside</span>
+00741 <span class="keywordflow">return</span> <span class="keyword">true</span>;
+00742 <span class="keywordflow">else</span>
+00743 <span class="keywordflow">return</span> <span class="keyword">false</span>;
+00744 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NLLIGO_1_1CPrimZonee1" doxytag="NLLIGO::CPrimZone::contains" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> bool NLLIGO::CPrimZone::contains </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top">const <a class="el" href="a03128.html">NLMISC::CVector</a> &amp;&nbsp;</td>
+ <td class="mdname" nowrap> <em>v</em>, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td></td>
+ <td class="md" nowrap>const std::vector&lt; <a class="el" href="a03127.html">CPrimVector</a> &gt; &amp;&nbsp;</td>
+ <td class="mdname" nowrap> <em>points</em></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td class="md">)&nbsp;</td>
+ <td class="md" colspan="2"><code> [static]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="a06195.html#l00270">270</a> of file <a class="el" href="a06195.html">primitive.cpp</a>.
+<p>
+References <a class="el" href="a05981.html#l00100">uint32</a>, and <a class="el" href="a05646.html#l00237">v</a>.
+<p>
+<div class="fragment"><pre>00271 {
+00272 <a class="code" href="a04558.html#a11">uint32</a> i;
+00273 CVector vMin, vMax;
+00274
+00275 <span class="comment">// Point or line can't contains !</span>
+00276 <span class="keywordflow">if</span> (points.size() &lt; 3)
+00277 <span class="keywordflow">return</span> <span class="keyword">false</span>;
+00278
+00279 <span class="comment">// Get the bounding rectangle of the zone</span>
+00280 vMax = vMin = points[0];
+00281 <span class="keywordflow">for</span> (i = 0; i &lt; points.size(); ++i)
+00282 {
+00283 <span class="keywordflow">if</span> (vMin.x &gt; points[i].x)
+00284 vMin.x = points[i].x;
+00285 <span class="keywordflow">if</span> (vMin.y &gt; points[i].y)
+00286 vMin.y = points[i].y;
+00287
+00288 <span class="keywordflow">if</span> (vMax.x &lt; points[i].x)
+00289 vMax.x = points[i].x;
+00290 <span class="keywordflow">if</span> (vMax.y &lt; points[i].y)
+00291 vMax.y = points[i].y;
+00292 }
+00293
+00294 <span class="keywordflow">if</span> ((<a class="code" href="a04223.html#a576">v</a>.x &lt; vMin.x) || (<a class="code" href="a04223.html#a576">v</a>.y &lt; vMin.y) || (<a class="code" href="a04223.html#a576">v</a>.x &gt; vMax.x) || (<a class="code" href="a04223.html#a576">v</a>.y &gt; vMax.y))
+00295 <span class="keywordflow">return</span> <span class="keyword">false</span>;
+00296
+00297 <a class="code" href="a04558.html#a11">uint32</a> nNbIntersection = 0;
+00298 <span class="keywordflow">for</span> (i = 0; i &lt; points.size(); ++i)
+00299 {
+00300 <span class="keyword">const</span> CVector &amp;p1 = points[i];
+00301 <span class="keyword">const</span> CVector &amp;p2 = points[(i+1)%points.size()];
+00302
+00303 <span class="keywordflow">if</span> (((p1.y-<a class="code" href="a04223.html#a576">v</a>.y) &lt;= 0.0)&amp;&amp;((p2.y-<a class="code" href="a04223.html#a576">v</a>.y) &lt;= 0.0))
+00304 <span class="keywordflow">continue</span>;
+00305 <span class="keywordflow">if</span> (((p1.y-<a class="code" href="a04223.html#a576">v</a>.y) &gt; 0.0)&amp;&amp;((p2.y-<a class="code" href="a04223.html#a576">v</a>.y) &gt; 0.0))
+00306 <span class="keywordflow">continue</span>;
+00307 <span class="keywordtype">float</span> xinter = p1.x + (p2.x-p1.x) * ((<a class="code" href="a04223.html#a576">v</a>.y-p1.y)/(p2.y-p1.y));
+00308 <span class="keywordflow">if</span> (xinter &gt; <a class="code" href="a04223.html#a576">v</a>.x)
+00309 ++nNbIntersection;
+00310 }
+00311 <span class="keywordflow">if</span> ((nNbIntersection&amp;1) == 1) <span class="comment">// odd intersections so the vertex is inside</span>
+00312 <span class="keywordflow">return</span> <span class="keyword">true</span>;
+00313 <span class="keywordflow">else</span>
+00314 <span class="keywordflow">return</span> <span class="keyword">false</span>;
+00315 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NLLIGO_1_1CPrimZonee2" doxytag="NLLIGO::CPrimZone::contains" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> bool NLLIGO::CPrimZone::contains </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top">const <a class="el" href="a03128.html">NLMISC::CVector</a> &amp;&nbsp;</td>
+ <td class="mdname" nowrap> <em>v</em>, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td></td>
+ <td class="md" nowrap>const std::vector&lt; <a class="el" href="a03128.html">NLMISC::CVector</a> &gt; &amp;&nbsp;</td>
+ <td class="mdname" nowrap> <em>points</em>, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td></td>
+ <td class="md" nowrap>float &amp;&nbsp;</td>
+ <td class="mdname" nowrap> <em>distance</em>, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td></td>
+ <td class="md" nowrap><a class="el" href="a03128.html">NLMISC::CVector</a> &amp;&nbsp;</td>
+ <td class="mdname" nowrap> <em>nearPos</em>, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td></td>
+ <td class="md" nowrap>bool&nbsp;</td>
+ <td class="mdname" nowrap> <em>isPath</em></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td class="md">)&nbsp;</td>
+ <td class="md" colspan="2"><code> [static]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="a06195.html#l00748">748</a> of file <a class="el" href="a06195.html">primitive.cpp</a>.
+<p>
+References <a class="el" href="a06195.html#l00847">getSegmentDist()</a>, <a class="el" href="a05788.html#l00056">H_AUTO</a>, <a class="el" href="a05484.html#l00038">min</a>, <a class="el" href="a05981.html#l00105">uint</a>, <a class="el" href="a05981.html#l00100">uint32</a>, and <a class="el" href="a05646.html#l00237">v</a>.
+<p>
+<div class="fragment"><pre>00749 {
+00750 <a class="code" href="a04365.html#a4">H_AUTO</a>(NLLIGO_Contains2)
+00751 <a class="code" href="a04558.html#a11">uint32</a> i;
+00752 CVector vMin, vMax;
+00753 <span class="keywordtype">float</span> nearest = FLT_MAX;
+00754 CVector pos;
+00755
+00756 <span class="comment">// Point or line can't contains !</span>
+00757 <span class="keywordflow">if</span> (points.size() &lt; 3 || isPath)
+00758 {
+00759 <span class="comment">// only compute the distance.</span>
+00760 <span class="keywordflow">if</span> (points.size() == 1)
+00761 {
+00762 distance = (points[0] - <a class="code" href="a04223.html#a576">v</a>).norm();
+00763 nearPos = points[0];
+00764 }
+00765 <span class="keywordflow">else</span> <span class="keywordflow">if</span> (points.size() == 2)
+00766 {
+00767 distance = <a class="code" href="a03129.html#NLLIGO_1_1CPrimZonee4">getSegmentDist</a>(v, points[0], points[1], nearPos);
+00768 }
+00769 <span class="keywordflow">else</span>
+00770 {
+00771 <span class="comment">// compute nearest segment</span>
+00772 <span class="keywordflow">for</span> (i = 0; i &lt; points.size()-1; ++i)
+00773 {
+00774 <span class="keyword">const</span> CVector &amp;p1 = points[i];
+00775 <span class="keyword">const</span> CVector &amp;p2 = points[i+1];
+00776
+00777 <span class="keywordtype">float</span> dist = <a class="code" href="a03129.html#NLLIGO_1_1CPrimZonee4">getSegmentDist</a>(v, p1, p2, pos);
+00778 <span class="keywordflow">if</span>( dist &lt; nearest)
+00779 {
+00780 nearest = dist;
+00781 nearPos = pos;
+00782 }
+00783 }
+00784 distance = nearest;
+00785 }
+00786 <span class="keywordflow">return</span> <span class="keyword">false</span>;
+00787 }
+00788
+00789 <span class="comment">// Get the bounding rectangle of the zone</span>
+00790 vMax = vMin = points[0];
+00791 <span class="keywordflow">for</span> (i = 0; i &lt; points.size(); ++i)
+00792 {
+00793 vMin.x = <a class="code" href="a04061.html#a0">min</a>(vMin.x, points[i].x);
+00794 vMin.y = <a class="code" href="a04061.html#a0">min</a>(vMin.y, points[i].y);
+00795 vMax.x = max(vMax.x, points[i].x);
+00796 vMax.y = max(vMax.y, points[i].y);
+00797 }
+00798
+00799 <span class="keywordflow">if</span> ((<a class="code" href="a04223.html#a576">v</a>.x &lt; vMin.x) || (<a class="code" href="a04223.html#a576">v</a>.y &lt; vMin.y) || (<a class="code" href="a04223.html#a576">v</a>.x &gt; vMax.x) || (<a class="code" href="a04223.html#a576">v</a>.y &gt; vMax.y))
+00800 {
+00801 <span class="comment">// find the nearest distance of all segment</span>
+00802 <span class="keywordflow">for</span> (<a class="code" href="a04558.html#a15">uint</a> i=0; i&lt;points.size(); ++i)
+00803 {
+00804 <span class="keywordtype">float</span> dist = <a class="code" href="a03129.html#NLLIGO_1_1CPrimZonee4">getSegmentDist</a>(v, points[i], points[(i+1) % points.size()], pos);
+00805
+00806 <span class="keywordflow">if</span> (dist &lt; nearest)
+00807 {
+00808 nearest = dist;
+00809 nearPos = pos;
+00810 }
+00811 }
+00812 distance = nearest;
+00813 <span class="keywordflow">return</span> <span class="keyword">false</span>;
+00814 }
+00815
+00816 <a class="code" href="a04558.html#a11">uint32</a> nNbIntersection = 0;
+00817 <span class="keywordflow">for</span> (i = 0; i &lt; points.size(); ++i)
+00818 {
+00819 <span class="keyword">const</span> CVector &amp;p1 = points[i];
+00820 <span class="keyword">const</span> CVector &amp;p2 = points[(i+1)%points.size()];
+00821
+00822 <span class="keywordtype">float</span> dist = <a class="code" href="a03129.html#NLLIGO_1_1CPrimZonee4">getSegmentDist</a>(v, p1, p2, pos);
+00823 <span class="keywordflow">if</span>( dist &lt; nearest)
+00824 {
+00825 nearest = dist;
+00826 nearPos = pos;
+00827 }
+00828
+00829 <span class="keywordflow">if</span> (((p1.y-<a class="code" href="a04223.html#a576">v</a>.y) &lt;= 0.0)&amp;&amp;((p2.y-<a class="code" href="a04223.html#a576">v</a>.y) &lt;= 0.0))
+00830 <span class="keywordflow">continue</span>;
+00831 <span class="keywordflow">if</span> (((p1.y-<a class="code" href="a04223.html#a576">v</a>.y) &gt; 0.0)&amp;&amp;((p2.y-<a class="code" href="a04223.html#a576">v</a>.y) &gt; 0.0))
+00832 <span class="keywordflow">continue</span>;
+00833 <span class="keywordtype">float</span> xinter = p1.x + (p2.x-p1.x) * ((<a class="code" href="a04223.html#a576">v</a>.y-p1.y)/(p2.y-p1.y));
+00834 <span class="keywordflow">if</span> (xinter &gt; <a class="code" href="a04223.html#a576">v</a>.x)
+00835 ++nNbIntersection;
+00836 }
+00837
+00838 distance = nearest;
+00839 <span class="keywordflow">if</span> ((nNbIntersection&amp;1) == 1) <span class="comment">// odd intersections so the vertex is inside</span>
+00840 <span class="keywordflow">return</span> <span class="keyword">true</span>;
+00841 <span class="keywordflow">else</span>
+00842 <span class="keywordflow">return</span> <span class="keyword">false</span>;
+00843 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NLLIGO_1_1CPrimZonee3" doxytag="NLLIGO::CPrimZone::contains" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> bool NLLIGO::CPrimZone::contains </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top">const <a class="el" href="a03128.html">NLMISC::CVector</a> &amp;&nbsp;</td>
+ <td class="mdname" nowrap> <em>v</em>, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td></td>
+ <td class="md" nowrap>const std::vector&lt; <a class="el" href="a03128.html">NLMISC::CVector</a> &gt; &amp;&nbsp;</td>
+ <td class="mdname" nowrap> <em>points</em></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td class="md">)&nbsp;</td>
+ <td class="md" colspan="2"><code> [static]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="a06195.html#l00319">319</a> of file <a class="el" href="a06195.html">primitive.cpp</a>.
+<p>
+References <a class="el" href="a05981.html#l00100">uint32</a>, and <a class="el" href="a05646.html#l00237">v</a>.
+<p>
+<div class="fragment"><pre>00320 {
+00321 <a class="code" href="a04558.html#a11">uint32</a> i;
+00322 CVector vMin, vMax;
+00323
+00324 <span class="comment">// Point or line can't contains !</span>
+00325 <span class="keywordflow">if</span> (points.size() &lt; 3)
+00326 <span class="keywordflow">return</span> <span class="keyword">false</span>;
+00327
+00328 <span class="comment">// Get the bounding rectangle of the zone</span>
+00329 vMax = vMin = points[0];
+00330 <span class="keywordflow">for</span> (i = 0; i &lt; points.size(); ++i)
+00331 {
+00332 <span class="keywordflow">if</span> (vMin.x &gt; points[i].x)
+00333 vMin.x = points[i].x;
+00334 <span class="keywordflow">if</span> (vMin.y &gt; points[i].y)
+00335 vMin.y = points[i].y;
+00336
+00337 <span class="keywordflow">if</span> (vMax.x &lt; points[i].x)
+00338 vMax.x = points[i].x;
+00339 <span class="keywordflow">if</span> (vMax.y &lt; points[i].y)
+00340 vMax.y = points[i].y;
+00341 }
+00342
+00343 <span class="keywordflow">if</span> ((<a class="code" href="a04223.html#a576">v</a>.x &lt; vMin.x) || (<a class="code" href="a04223.html#a576">v</a>.y &lt; vMin.y) || (<a class="code" href="a04223.html#a576">v</a>.x &gt; vMax.x) || (<a class="code" href="a04223.html#a576">v</a>.y &gt; vMax.y))
+00344 <span class="keywordflow">return</span> <span class="keyword">false</span>;
+00345
+00346 <a class="code" href="a04558.html#a11">uint32</a> nNbIntersection = 0;
+00347 <span class="keywordflow">for</span> (i = 0; i &lt; points.size(); ++i)
+00348 {
+00349 <span class="keyword">const</span> CVector &amp;p1 = points[i];
+00350 <span class="keyword">const</span> CVector &amp;p2 = points[(i+1)%points.size()];
+00351
+00352 <span class="keywordflow">if</span> (((p1.y-<a class="code" href="a04223.html#a576">v</a>.y) &lt;= 0.0)&amp;&amp;((p2.y-<a class="code" href="a04223.html#a576">v</a>.y) &lt;= 0.0))
+00353 <span class="keywordflow">continue</span>;
+00354 <span class="keywordflow">if</span> (((p1.y-<a class="code" href="a04223.html#a576">v</a>.y) &gt; 0.0)&amp;&amp;((p2.y-<a class="code" href="a04223.html#a576">v</a>.y) &gt; 0.0))
+00355 <span class="keywordflow">continue</span>;
+00356 <span class="keywordtype">float</span> xinter = p1.x + (p2.x-p1.x) * ((<a class="code" href="a04223.html#a576">v</a>.y-p1.y)/(p2.y-p1.y));
+00357 <span class="keywordflow">if</span> (xinter &gt; <a class="code" href="a04223.html#a576">v</a>.x)
+00358 ++nNbIntersection;
+00359 }
+00360 <span class="keywordflow">if</span> ((nNbIntersection&amp;1) == 1) <span class="comment">// odd intersections so the vertex is inside</span>
+00361 <span class="keywordflow">return</span> <span class="keyword">true</span>;
+00362 <span class="keywordflow">else</span>
+00363 <span class="keywordflow">return</span> <span class="keyword">false</span>;
+00364 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NLLIGO_1_1CPrimZonea0" doxytag="NLLIGO::CPrimZone::contains" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> bool NLLIGO::CPrimZone::contains </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top">const <a class="el" href="a03128.html">NLMISC::CVector</a> &amp;&nbsp;</td>
+ <td class="mdname" nowrap> <em>v</em>, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td></td>
+ <td class="md" nowrap>float &amp;&nbsp;</td>
+ <td class="mdname" nowrap> <em>distance</em>, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td></td>
+ <td class="md" nowrap><a class="el" href="a03128.html">NLMISC::CVector</a> &amp;&nbsp;</td>
+ <td class="mdname" nowrap> <em>nearPos</em>, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td></td>
+ <td class="md" nowrap>bool&nbsp;</td>
+ <td class="mdname" nowrap> <em>isPath</em></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td class="md">)&nbsp;</td>
+ <td class="md" colspan="2"> const<code> [inline]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="a06196.html#l00449">449</a> of file <a class="el" href="a06196.html">primitive.h</a>.
+<p>
+References <a class="el" href="a05646.html#l00237">v</a>.
+<p>
+<div class="fragment"><pre>00449 { <span class="keywordflow">return</span> CPrimZone::contains(v, VPoints, distance, nearPos, isPath); }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NLLIGO_1_1CPrimZonea1" doxytag="NLLIGO::CPrimZone::contains" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> bool NLLIGO::CPrimZone::contains </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top">const <a class="el" href="a03128.html">NLMISC::CVector</a> &amp;&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> <em>v</em> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap> const<code> [inline]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="a06196.html#l00448">448</a> of file <a class="el" href="a06196.html">primitive.h</a>.
+<p>
+References <a class="el" href="a05646.html#l00237">v</a>.
+<p>
+<div class="fragment"><pre>00448 { <span class="keywordflow">return</span> CPrimZone::contains(v, VPoints); }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NLLIGO_1_1CPrimZoned0" doxytag="NLLIGO::CPrimZone::copy" ></a><p>
+<table class="mdTable" width="100%" 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="a03123.html">NLLIGO::IPrimitive</a> * NLLIGO::CPrimZone::copy </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap> const<code> [private, virtual]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Add a property If the property already exist, the method does nothing and returns false. The pointer will be deleted by the primitive using the ::delete operator.
+<p>
+Implements <a class="el" href="a03123.html#NLLIGO_1_1IPrimitivez1900_1">NLLIGO::IPrimitive</a>.
+<p>
+Definition at line <a class="el" href="a06195.html#l00598">598</a> of file <a class="el" href="a06195.html">primitive.cpp</a>.
+<p>
+<div class="fragment"><pre>00599 {
+00600 <span class="keywordflow">return</span> <span class="keyword">new</span> CPrimZone (*<span class="keyword">this</span>);
+00601 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NLLIGO_1_1CPrimZonea2" doxytag="NLLIGO::CPrimZone::getAABox" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> void NLLIGO::CPrimZone::getAABox </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top"><a class="el" href="a03128.html">NLMISC::CVector</a> &amp;&nbsp;</td>
+ <td class="mdname" nowrap> <em>cornerMin</em>, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td></td>
+ <td class="md" nowrap><a class="el" href="a03128.html">NLMISC::CVector</a> &amp;&nbsp;</td>
+ <td class="mdname" nowrap> <em>cornerMax</em></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td class="md">)&nbsp;</td>
+ <td class="md" colspan="2"> const</td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Returns the smallest axis-aligned box containing the zone.
+<p>
+
+<p>
+Definition at line <a class="el" href="a06195.html#l00889">889</a> of file <a class="el" href="a06195.html">primitive.cpp</a>.
+<p>
+References <a class="el" href="a05981.html#l00105">uint</a>, <a class="el" href="a06673.html#l00051">NLMISC::CVector::x</a>, and <a class="el" href="a06673.html#l00051">NLMISC::CVector::y</a>.
+<p>
+<div class="fragment"><pre>00890 {
+00891 cornerMin.<a class="code" href="a03128.html#NLMISC_1_1CVectoro0">x</a> = FLT_MAX;
+00892 cornerMin.<a class="code" href="a03128.html#NLMISC_1_1CVectoro1">y</a> = FLT_MAX;
+00893 cornerMax.<a class="code" href="a03128.html#NLMISC_1_1CVectoro0">x</a> = -FLT_MAX;
+00894 cornerMax.<a class="code" href="a03128.html#NLMISC_1_1CVectoro1">y</a> = -FLT_MAX;
+00895 <span class="keywordflow">for</span> ( <a class="code" href="a04558.html#a15">uint</a> i=0; i!=<a class="code" href="a03129.html#NLLIGO_1_1CPrimZoneo3">VPoints</a>.size(); ++i )
+00896 {
+00897 <span class="keyword">const</span> CVector&amp; p = <a class="code" href="a03129.html#NLLIGO_1_1CPrimZoneo3">VPoints</a>[i];
+00898 <span class="keywordflow">if</span> ( p.x &lt; cornerMin.<a class="code" href="a03128.html#NLMISC_1_1CVectoro0">x</a> )
+00899 cornerMin.<a class="code" href="a03128.html#NLMISC_1_1CVectoro0">x</a> = p.x;
+00900 <span class="keywordflow">if</span> ( p.x &gt; cornerMax.<a class="code" href="a03128.html#NLMISC_1_1CVectoro0">x</a> )
+00901 cornerMax.<a class="code" href="a03128.html#NLMISC_1_1CVectoro0">x</a> = p.x;
+00902 <span class="keywordflow">if</span> ( p.y &lt; cornerMin.<a class="code" href="a03128.html#NLMISC_1_1CVectoro1">y</a> )
+00903 cornerMin.<a class="code" href="a03128.html#NLMISC_1_1CVectoro1">y</a> = p.y;
+00904 <span class="keywordflow">if</span> ( p.y &gt; cornerMax.<a class="code" href="a03128.html#NLMISC_1_1CVectoro1">y</a> )
+00905 cornerMax.<a class="code" href="a03128.html#NLMISC_1_1CVectoro1">y</a> = p.y;
+00906 }
+00907 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NLLIGO_1_1CPrimZonea3" doxytag="NLLIGO::CPrimZone::getBarycentre" ></a><p>
+<table class="mdTable" width="100%" 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="a03128.html">NLMISC::CVector</a> NLLIGO::CPrimZone::getBarycentre </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap> const</td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Returns the barycenter of the zone (warning, it may be outside of the zone if it is not convex). Returns CVector::Null if there is no vertex.
+<p>
+
+<p>
+Definition at line <a class="el" href="a06195.html#l00874">874</a> of file <a class="el" href="a06195.html">primitive.cpp</a>.
+<p>
+References <a class="el" href="a05981.html#l00105">uint</a>.
+<p>
+<div class="fragment"><pre>00875 {
+00876 CVector sum( CVector::Null );
+00877 <a class="code" href="a04558.html#a15">uint</a> n = <a class="code" href="a03129.html#NLLIGO_1_1CPrimZoneo3">VPoints</a>.size();
+00878 <span class="keywordflow">if</span> ( n != 0 )
+00879 {
+00880 <span class="keywordflow">for</span> ( <a class="code" href="a04558.html#a15">uint</a> i=0; i!=n; ++i )
+00881 sum += <a class="code" href="a03129.html#NLLIGO_1_1CPrimZoneo3">VPoints</a>[i];
+00882 <span class="keywordflow">return</span> sum / (<span class="keywordtype">float</span>)n;
+00883 }
+00884 <span class="keywordflow">else</span>
+00885 <span class="keywordflow">return</span> sum;
+00886 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NLLIGO_1_1IPrimitivez1899_0" doxytag="NLLIGO::CPrimZone::getChild" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> bool NLLIGO::IPrimitive::getChild </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top"><a class="el" href="a03123.html">IPrimitive</a> *&amp;&nbsp;</td>
+ <td class="mdname" nowrap> <em>result</em>, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td></td>
+ <td class="md" nowrap><a class="el" href="a04558.html#a15">uint</a>&nbsp;</td>
+ <td class="mdname" nowrap> <em>childId</em></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td class="md">)&nbsp;</td>
+ <td class="md" colspan="2"><code> [inherited]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Get a child primitive
+<p>
+Definition at line <a class="el" href="a06195.html#l01303">1303</a> of file <a class="el" href="a06195.html">primitive.cpp</a>.
+<p>
+References <a class="el" href="a05622.html#l00135">nlwarning</a>, and <a class="el" href="a05981.html#l00105">uint</a>.
+<p>
+<div class="fragment"><pre>01304 {
+01305 <span class="keywordflow">if</span> (childId &lt; _Children.size ())
+01306 {
+01307 result = _Children[childId];
+01308 <span class="keywordflow">return</span> <span class="keyword">true</span>;
+01309 }
+01310 <span class="keywordflow">else</span>
+01311 {
+01312 <a class="code" href="a04199.html#a2">nlwarning</a> (<span class="stringliteral">"NLLIGO::IPrimitive::getChild : invalid index (index : %d, size %d)."</span>, childId, _Children.size ());
+01313 }
+01314 <span class="keywordflow">return</span> <span class="keyword">false</span>;
+01315 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NLLIGO_1_1IPrimitivez1899_1" doxytag="NLLIGO::CPrimZone::getChild" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> bool NLLIGO::IPrimitive::getChild </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top">const <a class="el" href="a03123.html">IPrimitive</a> *&amp;&nbsp;</td>
+ <td class="mdname" nowrap> <em>result</em>, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td></td>
+ <td class="md" nowrap><a class="el" href="a04558.html#a15">uint</a>&nbsp;</td>
+ <td class="mdname" nowrap> <em>childId</em></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td class="md">)&nbsp;</td>
+ <td class="md" colspan="2"> const<code> [inherited]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Get a child primitive
+<p>
+Definition at line <a class="el" href="a06195.html#l01287">1287</a> of file <a class="el" href="a06195.html">primitive.cpp</a>.
+<p>
+References <a class="el" href="a05622.html#l00135">nlwarning</a>, and <a class="el" href="a05981.html#l00105">uint</a>.
+<p>
+Referenced by <a class="el" href="a06195.html#l01910">NLLIGO::CPrimitives::convertPrimitive()</a>, <a class="el" href="a05471.html#l00272">NLSOUND::CBackgroundSoundManager::loadAudioFromPrimitives()</a>, <a class="el" href="a05471.html#l00441">NLSOUND::CBackgroundSoundManager::loadEffectsFromPrimitives()</a>, <a class="el" href="a05471.html#l00410">NLSOUND::CBackgroundSoundManager::loadSamplesFromPrimitives()</a>, and <a class="el" href="a05471.html#l00334">NLSOUND::CBackgroundSoundManager::loadSoundsFromPrimitives()</a>.
+<p>
+<div class="fragment"><pre>01288 {
+01289 <span class="keywordflow">if</span> (childId &lt; _Children.size ())
+01290 {
+01291 result = _Children[childId];
+01292 <span class="keywordflow">return</span> <span class="keyword">true</span>;
+01293 }
+01294 <span class="keywordflow">else</span>
+01295 {
+01296 <a class="code" href="a04199.html#a2">nlwarning</a> (<span class="stringliteral">"NLLIGO::IPrimitive::getChild : invalid index (index : %d, size %d)."</span>, childId, _Children.size ());
+01297 }
+01298 <span class="keywordflow">return</span> <span class="keyword">false</span>;
+01299 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NLLIGO_1_1IPrimitivez1899_2" doxytag="NLLIGO::CPrimZone::getChildId" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> bool NLLIGO::IPrimitive::getChildId </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top"><a class="el" href="a04558.html#a15">uint</a> &amp;&nbsp;</td>
+ <td class="mdname" nowrap> <em>childId</em>, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td></td>
+ <td class="md" nowrap>const <a class="el" href="a03123.html">IPrimitive</a> *&nbsp;</td>
+ <td class="mdname" nowrap> <em>child</em></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td class="md">)&nbsp;</td>
+ <td class="md" colspan="2"> const<code> [inherited]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Get the id of the child, return 0xffffffff if not found
+<p>
+Definition at line <a class="el" href="a06195.html#l01713">1713</a> of file <a class="el" href="a06195.html">primitive.cpp</a>.
+<p>
+References <a class="el" href="a06196.html#l00317">NLLIGO::IPrimitive::_ChildId</a>, and <a class="el" href="a05981.html#l00105">uint</a>.
+<p>
+<div class="fragment"><pre>01714 {
+01715 childId = child-&gt;_ChildId;
+01716 <span class="keywordflow">return</span> <span class="keyword">true</span>;
+01717 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1ITrackKeyFramer_3_01CKeyVector_01_4a6" doxytag="NLLIGO::CPrimZone::getClassName" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> virtual std::string NLMISC::IClassable::getClassName </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap><code> [pure virtual, inherited]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Implemented in <a class="el" href="a02995.html#NLAIAGENT_1_1CNumericIndexz1699_0">NLAIAGENT::CNumericIndex</a>, <a class="el" href="a02145.html#NLAIAGENT_1_1VectorTypez1764_0">NLAIC::IPointerGestion</a>, <a class="el" href="a02650.html#NLAIC_1_1CIdentTypez1766_0">NLAIC::CIdentType</a>, and <a class="el" href="a02241.html#CAutomataDescz1896_0">CAutomataDesc</a>.
+<p>
+Referenced by <a class="el" href="a05549.html#l00091">NLMISC::CClassRegistry::checkObject()</a>, and <a class="el" href="a06525.html#l00039">NL3D::GetTextureSize()</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="NLLIGO_1_1IPrimitivez1899_3" doxytag="NLLIGO::CPrimZone::getNumChildren" ></a><p>
+<table class="mdTable" width="100%" 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="a04558.html#a15">uint</a> NLLIGO::IPrimitive::getNumChildren </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap> const<code> [inline, inherited]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Get the children primitive count
+<p>
+Definition at line <a class="el" href="a06196.html#l00183">183</a> of file <a class="el" href="a06196.html">primitive.h</a>.
+<p>
+References <a class="el" href="a05981.html#l00105">uint</a>.
+<p>
+Referenced by <a class="el" href="a06195.html#l01910">NLLIGO::CPrimitives::convertPrimitive()</a>, <a class="el" href="a05471.html#l00272">NLSOUND::CBackgroundSoundManager::loadAudioFromPrimitives()</a>, <a class="el" href="a05471.html#l00441">NLSOUND::CBackgroundSoundManager::loadEffectsFromPrimitives()</a>, <a class="el" href="a05471.html#l00410">NLSOUND::CBackgroundSoundManager::loadSamplesFromPrimitives()</a>, and <a class="el" href="a05471.html#l00334">NLSOUND::CBackgroundSoundManager::loadSoundsFromPrimitives()</a>.
+<p>
+<div class="fragment"><pre>00184 {
+00185 <span class="keywordflow">return</span> _Children.size ();
+00186 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NLLIGO_1_1IPrimitivez1900_2" doxytag="NLLIGO::CPrimZone::getNumProperty" ></a><p>
+<table class="mdTable" width="100%" 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="a04558.html#a15">uint</a> NLLIGO::IPrimitive::getNumProperty </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap> const<code> [inherited]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Get a num properties
+<p>
+Definition at line <a class="el" href="a06195.html#l01721">1721</a> of file <a class="el" href="a06195.html">primitive.cpp</a>.
+<p>
+References <a class="el" href="a06196.html#l00326">NLLIGO::IPrimitive::_Properties</a>, and <a class="el" href="a05981.html#l00105">uint</a>.
+<p>
+<div class="fragment"><pre>01722 {
+01723 <span class="keywordflow">return</span> _Properties.size ();
+01724 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NLLIGO_1_1CPrimZoned1" doxytag="NLLIGO::CPrimZone::getNumVector" ></a><p>
+<table class="mdTable" width="100%" 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="a04558.html#a15">uint</a> NLLIGO::CPrimZone::getNumVector </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap> const<code> [private, virtual]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Add a property If the property already exist, the method does nothing and returns false. The pointer will be deleted by the primitive using the ::delete operator.
+<p>
+Implements <a class="el" href="a03123.html#NLLIGO_1_1IPrimitivez1900_3">NLLIGO::IPrimitive</a>.
+<p>
+Definition at line <a class="el" href="a06195.html#l00584">584</a> of file <a class="el" href="a06195.html">primitive.cpp</a>.
+<p>
+References <a class="el" href="a05981.html#l00105">uint</a>.
+<p>
+<div class="fragment"><pre>00585 {
+00586 <span class="keywordflow">return</span> <a class="code" href="a03129.html#NLLIGO_1_1CPrimZoneo3">VPoints</a>.size ();
+00587 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NLLIGO_1_1IPrimitivez1899_4" doxytag="NLLIGO::CPrimZone::getParent" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> const <a class="el" href="a03123.html">IPrimitive</a>* NLLIGO::IPrimitive::getParent </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap> const<code> [inline, inherited]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Get a child primitive
+<p>
+Definition at line <a class="el" href="a06196.html#l00199">199</a> of file <a class="el" href="a06196.html">primitive.h</a>.
+<p>
+<div class="fragment"><pre>00200 {
+00201 <span class="keywordflow">return</span> _Parent;
+00202 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NLLIGO_1_1IPrimitivez1899_5" doxytag="NLLIGO::CPrimZone::getParent" ></a><p>
+<table class="mdTable" width="100%" 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="a03123.html">IPrimitive</a>* NLLIGO::IPrimitive::getParent </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap><code> [inline, inherited]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Get the parent primtive
+<p>
+Definition at line <a class="el" href="a06196.html#l00195">195</a> of file <a class="el" href="a06196.html">primitive.h</a>.
+<p>
+Referenced by <a class="el" href="a05903.html#l00242">NLLIGO::CLigoConfig::canBeChild()</a>, and <a class="el" href="a05903.html#l00367">NLLIGO::CLigoConfig::getPrimitiveClass()</a>.
+<p>
+<div class="fragment"><pre>00196 {
+00197 <span class="keywordflow">return</span> _Parent;
+00198 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NLLIGO_1_1CPrimZoned2" doxytag="NLLIGO::CPrimZone::getPrimVector" ></a><p>
+<table class="mdTable" width="100%" 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="a03127.html">CPrimVector</a> * NLLIGO::CPrimZone::getPrimVector </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap><code> [private, virtual]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Add a property If the property already exist, the method does nothing and returns false. The pointer will be deleted by the primitive using the ::delete operator.
+<p>
+Implements <a class="el" href="a03123.html#NLLIGO_1_1IPrimitivez1900_4">NLLIGO::IPrimitive</a>.
+<p>
+Definition at line <a class="el" href="a06195.html#l00605">605</a> of file <a class="el" href="a06195.html">primitive.cpp</a>.
+<p>
+<div class="fragment"><pre>00606 {
+00607 <span class="keywordflow">return</span> &amp;(<a class="code" href="a03129.html#NLLIGO_1_1CPrimZoneo3">VPoints</a>[0]);
+00608 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NLLIGO_1_1CPrimZoned3" doxytag="NLLIGO::CPrimZone::getPrimVector" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> const <a class="el" href="a03127.html">CPrimVector</a> * NLLIGO::CPrimZone::getPrimVector </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap> const<code> [private, virtual]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Add a property If the property already exist, the method does nothing and returns false. The pointer will be deleted by the primitive using the ::delete operator.
+<p>
+Implements <a class="el" href="a03123.html#NLLIGO_1_1IPrimitivez1900_5">NLLIGO::IPrimitive</a>.
+<p>
+Definition at line <a class="el" href="a06195.html#l00591">591</a> of file <a class="el" href="a06195.html">primitive.cpp</a>.
+<p>
+<div class="fragment"><pre>00592 {
+00593 <span class="keywordflow">return</span> &amp;(<a class="code" href="a03129.html#NLLIGO_1_1CPrimZoneo3">VPoints</a>[0]);
+00594 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NLLIGO_1_1IPrimitivez1900_6" doxytag="NLLIGO::CPrimZone::getProperty" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> bool NLLIGO::IPrimitive::getProperty </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top"><a class="el" href="a04558.html#a15">uint</a>&nbsp;</td>
+ <td class="mdname" nowrap> <em>index</em>, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td></td>
+ <td class="md" nowrap>std::string &amp;&nbsp;</td>
+ <td class="mdname" nowrap> <em>property_name</em>, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td></td>
+ <td class="md" nowrap><a class="el" href="a03131.html">IProperty</a> *&amp;&nbsp;</td>
+ <td class="mdname" nowrap> <em>result</em></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td class="md">)&nbsp;</td>
+ <td class="md" colspan="2"><code> [inherited]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Get a properties by its index This is method (iterate a list) is slower than getPropertyByName (look up in a map).
+<p>
+Definition at line <a class="el" href="a06195.html#l01081">1081</a> of file <a class="el" href="a06195.html">primitive.cpp</a>.
+<p>
+References <a class="el" href="a06196.html#l00326">NLLIGO::IPrimitive::_Properties</a>, <a class="el" href="a05646.html#l00225">index</a>, <a class="el" href="a05622.html#l00135">nlwarning</a>, and <a class="el" href="a05981.html#l00105">uint</a>.
+<p>
+<div class="fragment"><pre>01082 {
+01083 <span class="comment">// Look for the property</span>
+01084 std::map&lt;std::string, IProperty*&gt;::iterator ite = _Properties.begin ();
+01085 <span class="keywordflow">while</span> (ite != _Properties.end ())
+01086 {
+01087 <span class="keywordflow">if</span> (<a class="code" href="a04223.html#a566">index</a> == 0)
+01088 {
+01089 property_name = ite-&gt;first;
+01090 result = ite-&gt;second;
+01091 <span class="keywordflow">return</span> <span class="keyword">true</span>;
+01092 }
+01093 <a class="code" href="a04223.html#a566">index</a>--;
+01094 ite ++;
+01095 }
+01096 <a class="code" href="a04199.html#a2">nlwarning</a> (<span class="stringliteral">"NLLIGO::IPrimitive::getProperty : invalid index (index : %d, size : %d)."</span>, index, _Properties.size ());
+01097 <span class="keywordflow">return</span> <span class="keyword">false</span>;
+01098 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NLLIGO_1_1IPrimitivez1900_7" doxytag="NLLIGO::CPrimZone::getProperty" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> bool NLLIGO::IPrimitive::getProperty </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top"><a class="el" href="a04558.html#a15">uint</a>&nbsp;</td>
+ <td class="mdname" nowrap> <em>index</em>, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td></td>
+ <td class="md" nowrap>std::string &amp;&nbsp;</td>
+ <td class="mdname" nowrap> <em>property_name</em>, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td></td>
+ <td class="md" nowrap>const <a class="el" href="a03131.html">IProperty</a> *&amp;&nbsp;</td>
+ <td class="mdname" nowrap> <em>result</em></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td class="md">)&nbsp;</td>
+ <td class="md" colspan="2"> const<code> [inherited]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Get a properties by its index This is method (iterate a list) is slower than getPropertyByName (look up in a map).
+<p>
+Definition at line <a class="el" href="a06195.html#l01060">1060</a> of file <a class="el" href="a06195.html">primitive.cpp</a>.
+<p>
+References <a class="el" href="a06196.html#l00326">NLLIGO::IPrimitive::_Properties</a>, <a class="el" href="a05646.html#l00225">index</a>, <a class="el" href="a05622.html#l00135">nlwarning</a>, and <a class="el" href="a05981.html#l00105">uint</a>.
+<p>
+<div class="fragment"><pre>01061 {
+01062 <span class="comment">// Look for the property</span>
+01063 std::map&lt;std::string, IProperty*&gt;::const_iterator ite = _Properties.begin ();
+01064 <span class="keywordflow">while</span> (ite != _Properties.end ())
+01065 {
+01066 <span class="keywordflow">if</span> (<a class="code" href="a04223.html#a566">index</a> == 0)
+01067 {
+01068 property_name = ite-&gt;first;
+01069 result = ite-&gt;second;
+01070 <span class="keywordflow">return</span> <span class="keyword">true</span>;
+01071 }
+01072 <a class="code" href="a04223.html#a566">index</a>--;
+01073 ite ++;
+01074 }
+01075 <a class="code" href="a04199.html#a2">nlwarning</a> (<span class="stringliteral">"NLLIGO::IPrimitive::getProperty : invalid index (index : %d, size : %d)."</span>, index, _Properties.size ());
+01076 <span class="keywordflow">return</span> <span class="keyword">false</span>;
+01077 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NLLIGO_1_1IPrimitivez1900_8" doxytag="NLLIGO::CPrimZone::getPropertyByName" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> bool NLLIGO::IPrimitive::getPropertyByName </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top">const char *&nbsp;</td>
+ <td class="mdname" nowrap> <em>property_name</em>, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td></td>
+ <td class="md" nowrap><a class="el" href="a03337.html">NLMISC::CRGBA</a> &amp;&nbsp;</td>
+ <td class="mdname" nowrap> <em>result</em></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td class="md">)&nbsp;</td>
+ <td class="md" colspan="2"> const<code> [inherited]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Get a color property with its name. Return false if the property is not found or is not a string array property.
+<p>
+Definition at line <a class="el" href="a06195.html#l01218">1218</a> of file <a class="el" href="a06195.html">primitive.cpp</a>.
+<p>
+References <a class="el" href="a06196.html#l00122">NLLIGO::CPropertyColor::Color</a>, <a class="el" href="a06195.html#l01102">NLLIGO::IPrimitive::getPropertyByName()</a>, and <a class="el" href="a05622.html#l00135">nlwarning</a>.
+<p>
+<div class="fragment"><pre>01219 {
+01220 <span class="comment">// Get the property</span>
+01221 <a class="code" href="a03131.html">IProperty</a> *prop;
+01222 <span class="keywordflow">if</span> (<a class="code" href="a03123.html#NLLIGO_1_1IPrimitivez1900_14">getPropertyByName</a> (property_name, prop))
+01223 {
+01224 <span class="keyword">const</span> CPropertyColor *colorProp = dynamic_cast&lt;const CPropertyColor *&gt; (prop);
+01225 <span class="keywordflow">if</span> (colorProp)
+01226 {
+01227 result = colorProp-&gt;Color;
+01228 <span class="keywordflow">return</span> <span class="keyword">true</span>;
+01229 }
+01230 <span class="keywordflow">else</span>
+01231 {
+01232 <a class="code" href="a04199.html#a2">nlwarning</a> (<span class="stringliteral">"NLLIGO::IPrimitive::getPropertyByName : property (%s) in not a color."</span>, property_name);
+01233 }
+01234 }
+01235 <span class="keywordflow">return</span> <span class="keyword">false</span>;
+01236 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NLLIGO_1_1IPrimitivez1900_9" doxytag="NLLIGO::CPrimZone::getPropertyByName" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> bool NLLIGO::IPrimitive::getPropertyByName </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top">const char *&nbsp;</td>
+ <td class="mdname" nowrap> <em>property_name</em>, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td></td>
+ <td class="md" nowrap>const std::vector&lt; std::string &gt; *&amp;&nbsp;</td>
+ <td class="mdname" nowrap> <em>result</em></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td class="md">)&nbsp;</td>
+ <td class="md" colspan="2"> const<code> [inherited]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Get a string array property with its name. Return false if the property is not found or is not a string array property.
+<p>
+Definition at line <a class="el" href="a06195.html#l01196">1196</a> of file <a class="el" href="a06195.html">primitive.cpp</a>.
+<p>
+References <a class="el" href="a06195.html#l01102">NLLIGO::IPrimitive::getPropertyByName()</a>, <a class="el" href="a05622.html#l00135">nlwarning</a>, and <a class="el" href="a06196.html#l00107">NLLIGO::CPropertyStringArray::StringArray</a>.
+<p>
+<div class="fragment"><pre>01197 {
+01198 <span class="comment">// Get the property</span>
+01199 <a class="code" href="a03131.html">IProperty</a> *prop;
+01200 <span class="keywordflow">if</span> (<a class="code" href="a03123.html#NLLIGO_1_1IPrimitivez1900_14">getPropertyByName</a> (property_name, prop))
+01201 {
+01202 <span class="keyword">const</span> <a class="code" href="a03133.html">CPropertyStringArray</a> *strProp = dynamic_cast&lt;const CPropertyStringArray *&gt; (prop);
+01203 <span class="keywordflow">if</span> (strProp)
+01204 {
+01205 result = &amp;(strProp-&gt;<a class="code" href="a03133.html#NLLIGO_1_1CPropertyStringArrayo1">StringArray</a>);
+01206 <span class="keywordflow">return</span> <span class="keyword">true</span>;
+01207 }
+01208 <span class="keywordflow">else</span>
+01209 {
+01210 <a class="code" href="a04199.html#a2">nlwarning</a> (<span class="stringliteral">"NLLIGO::IPrimitive::getPropertyByName : property (%s) in not a string."</span>, property_name);
+01211 }
+01212 }
+01213 <span class="keywordflow">return</span> <span class="keyword">false</span>;
+01214 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NLLIGO_1_1IPrimitivez1900_10" doxytag="NLLIGO::CPrimZone::getPropertyByName" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> bool NLLIGO::IPrimitive::getPropertyByName </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top">const char *&nbsp;</td>
+ <td class="mdname" nowrap> <em>property_name</em>, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td></td>
+ <td class="md" nowrap>std::string &amp;&nbsp;</td>
+ <td class="mdname" nowrap> <em>result</em></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td class="md">)&nbsp;</td>
+ <td class="md" colspan="2"> const<code> [inherited]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Get a string property with its name. Return false if the property is not found or is not a string property.
+<p>
+Definition at line <a class="el" href="a06195.html#l01152">1152</a> of file <a class="el" href="a06195.html">primitive.cpp</a>.
+<p>
+References <a class="el" href="a06195.html#l01102">NLLIGO::IPrimitive::getPropertyByName()</a>, <a class="el" href="a05622.html#l00135">nlwarning</a>, and <a class="el" href="a06196.html#l00088">NLLIGO::CPropertyString::String</a>.
+<p>
+<div class="fragment"><pre>01153 {
+01154 <span class="comment">// Get the property</span>
+01155 <span class="keyword">const</span> <a class="code" href="a03131.html">IProperty</a> *prop;
+01156 <span class="keywordflow">if</span> (<a class="code" href="a03123.html#NLLIGO_1_1IPrimitivez1900_14">getPropertyByName</a> (property_name, prop))
+01157 {
+01158 <span class="keyword">const</span> <a class="code" href="a03132.html">CPropertyString</a> *strProp = dynamic_cast&lt;const CPropertyString *&gt; (prop);
+01159 <span class="keywordflow">if</span> (strProp)
+01160 {
+01161 result = strProp-&gt;<a class="code" href="a03132.html#NLLIGO_1_1CPropertyStringo1">String</a>;
+01162 <span class="keywordflow">return</span> <span class="keyword">true</span>;
+01163 }
+01164 <span class="keywordflow">else</span>
+01165 {
+01166 <a class="code" href="a04199.html#a2">nlwarning</a> (<span class="stringliteral">"NLLIGO::IPrimitive::getPropertyByName : property (%s) in not a string."</span>, property_name);
+01167 }
+01168 }
+01169 <span class="keywordflow">return</span> <span class="keyword">false</span>;
+01170 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NLLIGO_1_1IPrimitivez1900_11" doxytag="NLLIGO::CPrimZone::getPropertyByName" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> bool NLLIGO::IPrimitive::getPropertyByName </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top">const char *&nbsp;</td>
+ <td class="mdname" nowrap> <em>property_name</em>, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td></td>
+ <td class="md" nowrap>std::vector&lt; std::string &gt; *&amp;&nbsp;</td>
+ <td class="mdname" nowrap> <em>result</em></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td class="md">)&nbsp;</td>
+ <td class="md" colspan="2"> const<code> [inherited]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Get a string array property with its name. Return false if the property is not found or is not a string array property.
+<p>
+Definition at line <a class="el" href="a06195.html#l01174">1174</a> of file <a class="el" href="a06195.html">primitive.cpp</a>.
+<p>
+References <a class="el" href="a06195.html#l01102">NLLIGO::IPrimitive::getPropertyByName()</a>, <a class="el" href="a05622.html#l00135">nlwarning</a>, and <a class="el" href="a06196.html#l00107">NLLIGO::CPropertyStringArray::StringArray</a>.
+<p>
+<div class="fragment"><pre>01175 {
+01176 <span class="comment">// Get the property</span>
+01177 <a class="code" href="a03131.html">IProperty</a> *prop;
+01178 <span class="keywordflow">if</span> (<a class="code" href="a03123.html#NLLIGO_1_1IPrimitivez1900_14">getPropertyByName</a> (property_name, prop))
+01179 {
+01180 <a class="code" href="a03133.html">CPropertyStringArray</a> *strProp = dynamic_cast&lt;CPropertyStringArray *&gt; (prop);
+01181 <span class="keywordflow">if</span> (strProp)
+01182 {
+01183 result = &amp;(strProp-&gt;<a class="code" href="a03133.html#NLLIGO_1_1CPropertyStringArrayo1">StringArray</a>);
+01184 <span class="keywordflow">return</span> <span class="keyword">true</span>;
+01185 }
+01186 <span class="keywordflow">else</span>
+01187 {
+01188 <a class="code" href="a04199.html#a2">nlwarning</a> (<span class="stringliteral">"NLLIGO::IPrimitive::getPropertyByName : property (%s) in not a string."</span>, property_name);
+01189 }
+01190 }
+01191 <span class="keywordflow">return</span> <span class="keyword">false</span>;
+01192 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NLLIGO_1_1IPrimitivez1900_12" doxytag="NLLIGO::CPrimZone::getPropertyByName" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> bool NLLIGO::IPrimitive::getPropertyByName </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top">const char *&nbsp;</td>
+ <td class="mdname" nowrap> <em>property_name</em>, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td></td>
+ <td class="md" nowrap>std::string *&amp;&nbsp;</td>
+ <td class="mdname" nowrap> <em>result</em></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td class="md">)&nbsp;</td>
+ <td class="md" colspan="2"> const<code> [inherited]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Get a string property with its name. Return false if the property is not found or is not a string property.
+<p>
+Definition at line <a class="el" href="a06195.html#l01130">1130</a> of file <a class="el" href="a06195.html">primitive.cpp</a>.
+<p>
+References <a class="el" href="a06195.html#l01102">NLLIGO::IPrimitive::getPropertyByName()</a>, <a class="el" href="a05622.html#l00135">nlwarning</a>, and <a class="el" href="a06196.html#l00088">NLLIGO::CPropertyString::String</a>.
+<p>
+<div class="fragment"><pre>01131 {
+01132 <span class="comment">// Get the property</span>
+01133 <a class="code" href="a03131.html">IProperty</a> *prop;
+01134 <span class="keywordflow">if</span> (<a class="code" href="a03123.html#NLLIGO_1_1IPrimitivez1900_14">getPropertyByName</a> (property_name, prop))
+01135 {
+01136 <a class="code" href="a03132.html">CPropertyString</a> *strProp = dynamic_cast&lt;CPropertyString *&gt; (prop);
+01137 <span class="keywordflow">if</span> (strProp)
+01138 {
+01139 result = &amp;(strProp-&gt;<a class="code" href="a03132.html#NLLIGO_1_1CPropertyStringo1">String</a>);
+01140 <span class="keywordflow">return</span> <span class="keyword">true</span>;
+01141 }
+01142 <span class="keywordflow">else</span>
+01143 {
+01144 <a class="code" href="a04199.html#a2">nlwarning</a> (<span class="stringliteral">"NLLIGO::IPrimitive::getPropertyByName : property (%s) in not a string."</span>, property_name);
+01145 }
+01146 }
+01147 <span class="keywordflow">return</span> <span class="keyword">false</span>;
+01148 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NLLIGO_1_1IPrimitivez1900_13" doxytag="NLLIGO::CPrimZone::getPropertyByName" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> bool NLLIGO::IPrimitive::getPropertyByName </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top">const char *&nbsp;</td>
+ <td class="mdname" nowrap> <em>property_name</em>, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td></td>
+ <td class="md" nowrap><a class="el" href="a03131.html">IProperty</a> *&amp;&nbsp;</td>
+ <td class="mdname" nowrap> <em>result</em></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td class="md">)&nbsp;</td>
+ <td class="md" colspan="2"> const<code> [inherited]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Get a property with its name
+<p>
+Definition at line <a class="el" href="a06195.html#l01116">1116</a> of file <a class="el" href="a06195.html">primitive.cpp</a>.
+<p>
+References <a class="el" href="a06196.html#l00326">NLLIGO::IPrimitive::_Properties</a>.
+<p>
+<div class="fragment"><pre>01117 {
+01118 <span class="comment">// Look for the property</span>
+01119 std::map&lt;std::string, IProperty*&gt;::const_iterator ite = _Properties.find (property_name);
+01120 <span class="keywordflow">if</span> (ite != _Properties.end ())
+01121 {
+01122 result = ite-&gt;second;
+01123 <span class="keywordflow">return</span> <span class="keyword">true</span>;
+01124 }
+01125 <span class="keywordflow">return</span> <span class="keyword">false</span>;
+01126 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NLLIGO_1_1IPrimitivez1900_14" doxytag="NLLIGO::CPrimZone::getPropertyByName" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> bool NLLIGO::IPrimitive::getPropertyByName </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top">const char *&nbsp;</td>
+ <td class="mdname" nowrap> <em>property_name</em>, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td></td>
+ <td class="md" nowrap>const <a class="el" href="a03131.html">IProperty</a> *&amp;&nbsp;</td>
+ <td class="mdname" nowrap> <em>result</em></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td class="md">)&nbsp;</td>
+ <td class="md" colspan="2"> const<code> [inherited]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Get a property with its name
+<p>
+Definition at line <a class="el" href="a06195.html#l01102">1102</a> of file <a class="el" href="a06195.html">primitive.cpp</a>.
+<p>
+References <a class="el" href="a06196.html#l00326">NLLIGO::IPrimitive::_Properties</a>.
+<p>
+Referenced by <a class="el" href="a06203.html#l00097">NLLIGO::CPrimitiveConfigurations::belong()</a>, <a class="el" href="a05903.html#l00242">NLLIGO::CLigoConfig::canBeChild()</a>, <a class="el" href="a05903.html#l00286">NLLIGO::CLigoConfig::canBeRoot()</a>, <a class="el" href="a06195.html#l01910">NLLIGO::CPrimitives::convertPrimitive()</a>, <a class="el" href="a05903.html#l00367">NLLIGO::CLigoConfig::getPrimitiveClass()</a>, <a class="el" href="a05903.html#l00188">NLLIGO::CLigoConfig::getPrimitiveColor()</a>, <a class="el" href="a06195.html#l01130">NLLIGO::IPrimitive::getPropertyByName()</a>, <a class="el" href="a05903.html#l00224">NLLIGO::CLigoConfig::isPrimitiveDeletable()</a>, <a class="el" href="a05903.html#l00206">NLLIGO::CLigoConfig::isPrimitiveLinked()</a>, <a class="el" href="a05471.html#l00272">NLSOUND::CBackgroundSoundManager::loadAudioFromPrimitives()</a>, <a class="el" href="a05471.html#l00441">NLSOUND::CBackgroundSoundManager::loadEffectsFromPrimitives()</a>, <a class="el" href="a05471.html#l00410">NLSOUND::CBackgroundSoundManager::loadSamplesFromPrimitives()</a>, <a class="el" href="a05471.html#l00334">NLSOUND::CBackgroundSoundManager::loadSoundsFromPrimitives()</a>, <a class="el" href="a06195.html#l01396">NLLIGO::IPrimitive::read()</a>, and <a class="el" href="a06201.html#l00599">NLLIGO::CPrimitiveClass::CParameter::translateAutoname()</a>.
+<p>
+<div class="fragment"><pre>01103 {
+01104 <span class="comment">// Look for the property</span>
+01105 std::map&lt;std::string, IProperty*&gt;::const_iterator ite = _Properties.find (property_name);
+01106 <span class="keywordflow">if</span> (ite != _Properties.end ())
+01107 {
+01108 result = ite-&gt;second;
+01109 <span class="keywordflow">return</span> <span class="keyword">true</span>;
+01110 }
+01111 <span class="keywordflow">return</span> <span class="keyword">false</span>;
+01112 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NLLIGO_1_1CPrimZonee4" doxytag="NLLIGO::CPrimZone::getSegmentDist" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> float NLLIGO::CPrimZone::getSegmentDist </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top">const <a class="el" href="a03128.html">NLMISC::CVector</a>&nbsp;</td>
+ <td class="mdname" nowrap> <em>v</em>, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td></td>
+ <td class="md" nowrap>const <a class="el" href="a03128.html">NLMISC::CVector</a> &amp;&nbsp;</td>
+ <td class="mdname" nowrap> <em>p1</em>, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td></td>
+ <td class="md" nowrap>const <a class="el" href="a03128.html">NLMISC::CVector</a> &amp;&nbsp;</td>
+ <td class="mdname" nowrap> <em>p2</em>, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td></td>
+ <td class="md" nowrap><a class="el" href="a03128.html">NLMISC::CVector</a> &amp;&nbsp;</td>
+ <td class="mdname" nowrap> <em>nearPos</em></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td class="md">)&nbsp;</td>
+ <td class="md" colspan="2"><code> [static]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="a06195.html#l00847">847</a> of file <a class="el" href="a06195.html">primitive.cpp</a>.
+<p>
+References <a class="el" href="a06682.html#l00115">NLMISC::CVector::norm()</a>, <a class="el" href="a05646.html#l00985">t</a>, and <a class="el" href="a05646.html#l00237">v</a>.
+<p>
+Referenced by <a class="el" href="a06195.html#l00649">contains()</a>.
+<p>
+<div class="fragment"><pre>00848 {
+00849 <span class="comment">// too point, compute distance to the segment.</span>
+00850 CVector V = (p2-p1).normed();
+00851 <span class="keywordtype">float</span> <a class="code" href="a04223.html#a627">t</a> = ((<a class="code" href="a04223.html#a576">v</a>-p1)*V)/(p2-p1).norm();
+00852 <span class="keywordtype">float</span> distance;
+00853 <span class="keywordflow">if</span> (<a class="code" href="a04223.html#a627">t</a> &lt; 0.0f)
+00854 {
+00855 nearPos = p1;
+00856 distance = (p1-<a class="code" href="a04223.html#a576">v</a>).<a class="code" href="a03128.html#NLMISC_1_1CVectorz2049_0">norm</a>();
+00857 }
+00858 <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<a class="code" href="a04223.html#a627">t</a> &gt; 1.0f)
+00859 {
+00860 nearPos = p2;
+00861 distance = (p2-<a class="code" href="a04223.html#a576">v</a>).<a class="code" href="a03128.html#NLMISC_1_1CVectorz2049_0">norm</a>();
+00862 }
+00863 <span class="keywordflow">else</span>
+00864 {
+00865 nearPos = p1 + <a class="code" href="a04223.html#a627">t</a>*(p2-p1);
+00866 distance = (<a class="code" href="a04223.html#a576">v</a>-nearPos).norm();
+00867 }
+00868
+00869 <span class="keywordflow">return</span> distance;
+00870 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NLLIGO_1_1IPrimitivez1899_6" doxytag="NLLIGO::CPrimZone::insertChild" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> bool NLLIGO::IPrimitive::insertChild </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top"><a class="el" href="a03123.html">IPrimitive</a> *&nbsp;</td>
+ <td class="mdname" nowrap> <em>primitive</em>, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td></td>
+ <td class="md" nowrap><a class="el" href="a04558.html#a15">uint</a>&nbsp;</td>
+ <td class="mdname" nowrap> <em>index</em> = AtTheEnd</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td class="md">)&nbsp;</td>
+ <td class="md" colspan="2"><code> [inherited]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Insert a child primitive before the index. The pointer will be deleted by the parent primitive using the ::delete operator. return false if the index is invalid
+<p>
+Definition at line <a class="el" href="a06195.html#l01349">1349</a> of file <a class="el" href="a06195.html">primitive.cpp</a>.
+<p>
+References <a class="el" href="a06196.html#l00320">NLLIGO::IPrimitive::_Parent</a>, <a class="el" href="a03123.html#NLLIGO_1_1IPrimitivew0NLLIGO_1_1IPrimitivew1">NLLIGO::IPrimitive::AtTheEnd</a>, <a class="el" href="a05646.html#l00225">index</a>, <a class="el" href="a05981.html#l00105">uint</a>, and <a class="el" href="a06195.html#l00984">NLLIGO::IPrimitive::updateChildId()</a>.
+<p>
+Referenced by <a class="el" href="a06195.html#l01839">NLLIGO::CPrimitives::convertAddPrimitive()</a>, <a class="el" href="a06195.html#l01910">NLLIGO::CPrimitives::convertPrimitive()</a>, and <a class="el" href="a06195.html#l01396">NLLIGO::IPrimitive::read()</a>.
+<p>
+<div class="fragment"><pre>01350 {
+01351 <span class="comment">// At the end ?</span>
+01352 <span class="keywordflow">if</span> (<a class="code" href="a04223.html#a566">index</a> == <a class="code" href="a03123.html#NLLIGO_1_1IPrimitivew0NLLIGO_1_1IPrimitivew1">AtTheEnd</a>)
+01353 <a class="code" href="a04223.html#a566">index</a> = _Children.size ();
+01354
+01355 <span class="comment">// Index valid ?</span>
+01356 <span class="keywordflow">if</span> (<a class="code" href="a04223.html#a566">index</a>&gt;_Children.size ())
+01357 <span class="keywordflow">return</span> <span class="keyword">false</span>;
+01358
+01359 <span class="comment">// Insert</span>
+01360 _Children.insert (_Children.begin () + <a class="code" href="a04223.html#a566">index</a>, primitive);
+01361
+01362 <span class="comment">// Update child id</span>
+01363 <a class="code" href="a03123.html#NLLIGO_1_1IPrimitivez1900_20">updateChildId</a> (index);
+01364
+01365 <span class="comment">// Link to the parent</span>
+01366 primitive-&gt;_Parent = <span class="keyword">this</span>;
+01367
+01368 <span class="keywordflow">return</span> <span class="keyword">true</span>;
+01369 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NLLIGO_1_1CPrimZonea5" doxytag="NLLIGO::CPrimZone::NLMISC_DECLARE_CLASS" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> NLLIGO::CPrimZone::NLMISC_DECLARE_CLASS </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top"><a class="el" href="a03129.html">CPrimZone</a>&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+ </td>
+ </tr>
+</table>
+<a class="anchor" name="NLLIGO_1_1CPrimZoned4" doxytag="NLLIGO::CPrimZone::read" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> bool NLLIGO::CPrimZone::read </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top">xmlNodePtr&nbsp;</td>
+ <td class="mdname" nowrap> <em>xmlNode</em>, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td></td>
+ <td class="md" nowrap>const char *&nbsp;</td>
+ <td class="mdname" nowrap> <em>filename</em>, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td></td>
+ <td class="md" nowrap><a class="el" href="a04558.html#a15">uint</a>&nbsp;</td>
+ <td class="mdname" nowrap> <em>version</em>, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td></td>
+ <td class="md" nowrap><a class="el" href="a02756.html">CLigoConfig</a> &amp;&nbsp;</td>
+ <td class="mdname" nowrap> <em>config</em></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td class="md">)&nbsp;</td>
+ <td class="md" colspan="2"><code> [private, virtual]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Add a property If the property already exist, the method does nothing and returns false. The pointer will be deleted by the primitive using the ::delete operator.
+<p>
+Reimplemented from <a class="el" href="a03123.html#NLLIGO_1_1IPrimitivez1900_15">NLLIGO::IPrimitive</a>.
+<p>
+Definition at line <a class="el" href="a06195.html#l00612">612</a> of file <a class="el" href="a06195.html">primitive.cpp</a>.
+<p>
+References <a class="el" href="a06195.html#l00116">NLLIGO::ReadVector()</a>, and <a class="el" href="a05981.html#l00105">uint</a>.
+<p>
+<div class="fragment"><pre>00613 {
+00614 <span class="comment">// Read points</span>
+00615 <a class="code" href="a03129.html#NLLIGO_1_1CPrimZoneo3">VPoints</a>.clear ();
+00616 <a class="code" href="a03129.html#NLLIGO_1_1CPrimZoneo3">VPoints</a>.reserve (CIXml::countChildren (xmlNode, <span class="stringliteral">"PT"</span>));
+00617 xmlNodePtr ptNode = CIXml::getFirstChildNode (xmlNode, <span class="stringliteral">"PT"</span>);
+00618 <span class="keywordflow">if</span> (ptNode)
+00619 {
+00620 <span class="keywordflow">do</span>
+00621 {
+00622 <span class="comment">// Read a vector</span>
+00623 <a class="code" href="a03129.html#NLLIGO_1_1CPrimZoneo3">VPoints</a>.push_back (CPrimVector ());
+00624 <span class="keywordflow">if</span> (!<a class="code" href="a05375.html#a7">ReadVector</a> (<a class="code" href="a03129.html#NLLIGO_1_1CPrimZoneo3">VPoints</a>.back (), <a class="code" href="a05377.html#a2">filename</a>, ptNode))
+00625 <span class="keywordflow">return</span> <span class="keyword">false</span>;
+00626 }
+00627 <span class="keywordflow">while</span> ((ptNode = CIXml::getNextChildNode (ptNode, <span class="stringliteral">"PT"</span>)));
+00628 }
+00629
+00630 <span class="keywordflow">return</span> IPrimitive::read (xmlNode, filename, version, config);
+00631 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NLLIGO_1_1IPrimitivez1899_10" doxytag="NLLIGO::CPrimZone::removeChild" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> bool NLLIGO::IPrimitive::removeChild </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top"><a class="el" href="a04558.html#a15">uint</a>&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> <em>childId</em> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap><code> [inherited]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Remove a child primitive
+<p>
+Definition at line <a class="el" href="a06195.html#l01319">1319</a> of file <a class="el" href="a06195.html">primitive.cpp</a>.
+<p>
+References <a class="el" href="a05622.html#l00135">nlwarning</a>, <a class="el" href="a05981.html#l00105">uint</a>, and <a class="el" href="a06195.html#l00984">NLLIGO::IPrimitive::updateChildId()</a>.
+<p>
+<div class="fragment"><pre>01320 {
+01321 <span class="keywordflow">if</span> (childId &lt; _Children.size ())
+01322 {
+01323 <span class="keyword">delete</span> _Children[childId];
+01324 _Children.erase (_Children.begin()+childId);
+01325 <a class="code" href="a03123.html#NLLIGO_1_1IPrimitivez1900_20">updateChildId</a> (childId);
+01326 <span class="keywordflow">return</span> <span class="keyword">true</span>;
+01327 }
+01328 <span class="keywordflow">else</span>
+01329 {
+01330 <a class="code" href="a04199.html#a2">nlwarning</a> (<span class="stringliteral">"NLLIGO::IPrimitive::removeChild : invalid index (index : %d, size %d)."</span>, childId, _Children.size ());
+01331 }
+01332 <span class="keywordflow">return</span> <span class="keyword">false</span>;
+01333 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NLLIGO_1_1IPrimitivez1899_11" doxytag="NLLIGO::CPrimZone::removeChildren" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> void NLLIGO::IPrimitive::removeChildren </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap><code> [inherited]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Remove all children primitives
+<p>
+Definition at line <a class="el" href="a06195.html#l01337">1337</a> of file <a class="el" href="a06195.html">primitive.cpp</a>.
+<p>
+References <a class="el" href="a05981.html#l00105">uint</a>.
+<p>
+Referenced by <a class="el" href="a06195.html#l01959">NLLIGO::CPrimitives::convert()</a>, <a class="el" href="a06195.html#l00994">NLLIGO::IPrimitive::operator=()</a>, <a class="el" href="a06195.html#l01759">NLLIGO::CPrimitives::read()</a>, and <a class="el" href="a06195.html#l01373">NLLIGO::IPrimitive::~IPrimitive()</a>.
+<p>
+<div class="fragment"><pre>01338 {
+01339 <span class="comment">// Erase children</span>
+01340 <span class="keywordflow">for</span> (<a class="code" href="a04558.html#a15">uint</a> i=0; i&lt;_Children.size (); i++)
+01341 {
+01342 <span class="keyword">delete</span> _Children[i];
+01343 }
+01344 _Children.clear ();
+01345 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NLLIGO_1_1IPrimitivez1900_16" doxytag="NLLIGO::CPrimZone::removeProperties" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> void NLLIGO::IPrimitive::removeProperties </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap><code> [inherited]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Remove all the properties
+<p>
+Definition at line <a class="el" href="a06195.html#l01274">1274</a> of file <a class="el" href="a06195.html">primitive.cpp</a>.
+<p>
+References <a class="el" href="a06196.html#l00326">NLLIGO::IPrimitive::_Properties</a>.
+<p>
+Referenced by <a class="el" href="a06195.html#l01959">NLLIGO::CPrimitives::convert()</a>, <a class="el" href="a06195.html#l00994">NLLIGO::IPrimitive::operator=()</a>, <a class="el" href="a06195.html#l01759">NLLIGO::CPrimitives::read()</a>, and <a class="el" href="a06195.html#l01373">NLLIGO::IPrimitive::~IPrimitive()</a>.
+<p>
+<div class="fragment"><pre>01275 {
+01276 std::map&lt;std::string, IProperty*&gt;::iterator ite = _Properties.begin ();
+01277 <span class="keywordflow">while</span> (ite != _Properties.end ())
+01278 {
+01279 <span class="keyword">delete</span> ite-&gt;second;
+01280 ite++;
+01281 }
+01282 _Properties.clear ();
+01283 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NLLIGO_1_1IPrimitivez1900_17" doxytag="NLLIGO::CPrimZone::removeProperty" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> bool NLLIGO::IPrimitive::removeProperty </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top"><a class="el" href="a04558.html#a15">uint</a>&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> <em>index</em> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap><code> [inherited]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Remove a property This is method (iterate a list) is slower than removePropertyByName (look up in a map).
+<p>
+Definition at line <a class="el" href="a06195.html#l01240">1240</a> of file <a class="el" href="a06195.html">primitive.cpp</a>.
+<p>
+References <a class="el" href="a06196.html#l00326">NLLIGO::IPrimitive::_Properties</a>, <a class="el" href="a05646.html#l00225">index</a>, <a class="el" href="a05622.html#l00135">nlwarning</a>, and <a class="el" href="a05981.html#l00105">uint</a>.
+<p>
+<div class="fragment"><pre>01241 {
+01242 <span class="comment">// Look for the property</span>
+01243 std::map&lt;std::string, IProperty*&gt;::iterator ite = _Properties.begin ();
+01244 <span class="keywordflow">while</span> (ite != _Properties.end ())
+01245 {
+01246 <span class="keywordflow">if</span> (<a class="code" href="a04223.html#a566">index</a> == 0)
+01247 {
+01248 _Properties.erase (ite);
+01249 <span class="keywordflow">return</span> <span class="keyword">true</span>;
+01250 }
+01251 <a class="code" href="a04223.html#a566">index</a>--;
+01252 ite ++;
+01253 }
+01254 <a class="code" href="a04199.html#a2">nlwarning</a> (<span class="stringliteral">"NLLIGO::IPrimitive::removeProperty : invalid index (index : %d, size : %d)."</span>, index, _Properties.size ());
+01255 <span class="keywordflow">return</span> <span class="keyword">false</span>;
+01256 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NLLIGO_1_1IPrimitivez1900_18" doxytag="NLLIGO::CPrimZone::removePropertyByName" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> bool NLLIGO::IPrimitive::removePropertyByName </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top">const char *&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> <em>property_name</em> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap><code> [inherited]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Remove a property by its name
+<p>
+Definition at line <a class="el" href="a06195.html#l01260">1260</a> of file <a class="el" href="a06195.html">primitive.cpp</a>.
+<p>
+References <a class="el" href="a06196.html#l00326">NLLIGO::IPrimitive::_Properties</a>.
+<p>
+<div class="fragment"><pre>01261 {
+01262 <span class="comment">// Look for the property</span>
+01263 std::map&lt;std::string, IProperty*&gt;::iterator ite = _Properties.find (property_name);
+01264 <span class="keywordflow">if</span> (ite != _Properties.end ())
+01265 {
+01266 _Properties.erase (ite);
+01267 <span class="keywordflow">return</span> <span class="keyword">true</span>;
+01268 }
+01269 <span class="keywordflow">return</span> <span class="keyword">false</span>;
+01270 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NLLIGO_1_1CPrimZonea6" doxytag="NLLIGO::CPrimZone::serial" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> void NLLIGO::CPrimZone::serial </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top"><a class="el" href="a02270.html">NLMISC::IStream</a> &amp;&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> <em>f</em> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="a06195.html#l00912">912</a> of file <a class="el" href="a06195.html">primitive.cpp</a>.
+<p>
+<div class="fragment"><pre>00913 {
+00914 f.<a class="code" href="a02270.html#NLMISC_1_1IStreamz2039_3">xmlPushBegin</a> (<span class="stringliteral">"ZONE"</span>);
+00915
+00916 f.<a class="code" href="a02270.html#NLMISC_1_1IStreamz2039_5">xmlSetAttrib</a> (<span class="stringliteral">"NAME"</span>);
+00917 f.<a class="code" href="a02270.html#NLMISC_1_1IStreama5">serial</a> (Name);
+00918 f.<a class="code" href="a02270.html#NLMISC_1_1IStreamz2039_5">xmlSetAttrib</a> (<span class="stringliteral">"LAYER"</span>);
+00919 f.<a class="code" href="a02270.html#NLMISC_1_1IStreama5">serial</a> (Layer);
+00920 f.<a class="code" href="a02270.html#NLMISC_1_1IStreamz2039_4">xmlPushEnd</a> ();
+00921
+00922 f.<a class="code" href="a02270.html#NLMISC_1_1IStreamz2033_9">serialCont</a> (VPoints);
+00923
+00924 f.<a class="code" href="a02270.html#NLMISC_1_1IStreamz2039_2">xmlPop</a> ();
+00925 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NLLIGO_1_1CPrimZoned5" doxytag="NLLIGO::CPrimZone::write" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> void NLLIGO::CPrimZone::write </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top">xmlNodePtr&nbsp;</td>
+ <td class="mdname" nowrap> <em>xmlNode</em>, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td></td>
+ <td class="md" nowrap>const char *&nbsp;</td>
+ <td class="mdname" nowrap> <em>filename</em></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td class="md">)&nbsp;</td>
+ <td class="md" colspan="2"> const<code> [private, virtual]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Add a property If the property already exist, the method does nothing and returns false. The pointer will be deleted by the primitive using the ::delete operator.
+<p>
+Reimplemented from <a class="el" href="a03123.html#NLLIGO_1_1IPrimitivez1900_19">NLLIGO::IPrimitive</a>.
+<p>
+Definition at line <a class="el" href="a06195.html#l00635">635</a> of file <a class="el" href="a06195.html">primitive.cpp</a>.
+<p>
+References <a class="el" href="a05981.html#l00105">uint</a>, and <a class="el" href="a06195.html#l00142">NLLIGO::WriteVector()</a>.
+<p>
+<div class="fragment"><pre>00636 {
+00637 <span class="comment">// Save the points</span>
+00638 <span class="keywordflow">for</span> (<a class="code" href="a04558.html#a15">uint</a> i=0; i&lt;<a class="code" href="a03129.html#NLLIGO_1_1CPrimZoneo3">VPoints</a>.size (); i++)
+00639 {
+00640 xmlNodePtr ptNode = xmlNewChild ( xmlNode, NULL, (<span class="keyword">const</span> xmlChar*)<span class="stringliteral">"PT"</span>, NULL);
+00641 <a class="code" href="a05375.html#a8">WriteVector</a> (VPoints[i], ptNode);
+00642 }
+00643
+00644 IPrimitive::write (xmlNode, filename);
+00645 }
+</pre></div> </td>
+ </tr>
+</table>
+<hr><h2>Field Documentation</h2>
+<a class="anchor" name="NLLIGO_1_1IPrimitiveo0" doxytag="NLLIGO::CPrimZone::Expanded" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> bool <a class="el" href="a03123.html#NLLIGO_1_1IPrimitiveo0">NLLIGO::IPrimitive::Expanded</a><code> [inherited]</code>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="a06196.html#l00163">163</a> of file <a class="el" href="a06196.html">primitive.h</a>.
+<p>
+Referenced by <a class="el" href="a06195.html#l00994">NLLIGO::IPrimitive::operator=()</a>, <a class="el" href="a06195.html#l01396">NLLIGO::IPrimitive::read()</a>, and <a class="el" href="a06195.html#l01627">NLLIGO::IPrimitive::write()</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="NLLIGO_1_1IPrimitiveo1" doxytag="NLLIGO::CPrimZone::Layer" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> std::string <a class="el" href="a03123.html#NLLIGO_1_1IPrimitiveo1">NLLIGO::IPrimitive::Layer</a><code> [inherited]</code>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="a06196.html#l00159">159</a> of file <a class="el" href="a06196.html">primitive.h</a>.
+<p>
+Referenced by <a class="el" href="a06195.html#l01910">NLLIGO::CPrimitives::convertPrimitive()</a>, and <a class="el" href="a06195.html#l00994">NLLIGO::IPrimitive::operator=()</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="NLLIGO_1_1IPrimitiveo2" doxytag="NLLIGO::CPrimZone::Name" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> std::string <a class="el" href="a03123.html#NLLIGO_1_1IPrimitiveo2">NLLIGO::IPrimitive::Name</a><code> [inherited]</code>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="a06196.html#l00160">160</a> of file <a class="el" href="a06196.html">primitive.h</a>.
+<p>
+Referenced by <a class="el" href="a06195.html#l01839">NLLIGO::CPrimitives::convertAddPrimitive()</a>, and <a class="el" href="a06195.html#l00994">NLLIGO::IPrimitive::operator=()</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="NLLIGO_1_1CPrimZoneo3" doxytag="NLLIGO::CPrimZone::VPoints" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> std::vector&lt;<a class="el" href="a03127.html">CPrimVector</a>&gt; <a class="el" href="a03129.html#NLLIGO_1_1CPrimZoneo3">NLLIGO::CPrimZone::VPoints</a>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="a06196.html#l00442">442</a> of file <a class="el" href="a06196.html">primitive.h</a>. </td>
+ </tr>
+</table>
+<hr>The documentation for this class was generated from the following files:<ul>
+<li><a class="el" href="a06196.html">primitive.h</a><li><a class="el" href="a06195.html">primitive.cpp</a></ul>
+<hr size="1"><address style="align: right;"><small>Generated on Tue Mar 16 12:50:47 2004 for NeL by
+<a href="http://www.doxygen.org/index.html">
+<img src="doxygen.png" alt="doxygen" align="middle" border=0 >
+</a>1.3.6 </small></address>
+</body>
+</html>