<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.povray.org/content?action=history&amp;feed=atom&amp;title=Reference%3AMeshmaker.inc</id>
	<title>Reference:Meshmaker.inc - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.povray.org/content?action=history&amp;feed=atom&amp;title=Reference%3AMeshmaker.inc"/>
	<link rel="alternate" type="text/html" href="https://wiki.povray.org/content?title=Reference:Meshmaker.inc&amp;action=history"/>
	<updated>2026-04-06T00:36:13Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.35.1</generator>
	<entry>
		<id>https://wiki.povray.org/content?title=Reference:Meshmaker.inc&amp;diff=9205&amp;oldid=prev</id>
		<title>Clipka at 13:42, 10 June 2017</title>
		<link rel="alternate" type="text/html" href="https://wiki.povray.org/content?title=Reference:Meshmaker.inc&amp;diff=9205&amp;oldid=prev"/>
		<updated>2017-06-10T13:42:13Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left diff-editfont-monospace&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 13:42, 10 June 2017&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l7&quot; &gt;Line 7:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 7:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;The spline is evaluated from t=0 to t=1. &amp;lt;br&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;The spline is evaluated from t=0 to t=1. &amp;lt;br&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;For the normal calculation, it is required that all splines (also linear_spline) have one extra&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;For the normal calculation, it is required that all splines (also linear_spline) have one extra&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;point before t=0 and after t=1.&amp;lt;!--&amp;lt;/&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;dt&lt;/del&gt;&amp;gt;---&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;point before t=0 and after t=1.&amp;lt;!--&amp;lt;/&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;dd&lt;/ins&gt;&amp;gt;---&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;dt&amp;gt;&amp;lt;code&amp;gt;BuildWriteMesh2(VecArr, NormArr, UVArr, U, V, FileName)&amp;lt;/code&amp;gt;&amp;lt;!--&amp;lt;/dt&amp;gt;---&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;dt&amp;gt;&amp;lt;code&amp;gt;BuildWriteMesh2(VecArr, NormArr, UVArr, U, V, FileName)&amp;lt;/code&amp;gt;&amp;lt;!--&amp;lt;/dt&amp;gt;---&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Clipka</name></author>
	</entry>
	<entry>
		<id>https://wiki.povray.org/content?title=Reference:Meshmaker.inc&amp;diff=7930&amp;oldid=prev</id>
		<title>Jholsenback: missing closing code tag</title>
		<link rel="alternate" type="text/html" href="https://wiki.povray.org/content?title=Reference:Meshmaker.inc&amp;diff=7930&amp;oldid=prev"/>
		<updated>2013-04-17T23:25:51Z</updated>

		<summary type="html">&lt;p&gt;missing closing code tag&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left diff-editfont-monospace&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 23:25, 17 April 2013&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l83&quot; &gt;Line 83:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 83:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;	&amp;lt;dd&amp;gt;This  macro generates a mesh2 object by rotating a two-dimensional curve about the y-axis.&amp;lt;br&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;	&amp;lt;dd&amp;gt;This  macro generates a mesh2 object by rotating a two-dimensional curve about the y-axis.&amp;lt;br&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;The uv_coordinates come from the square &amp;lt;0,0&amp;gt; - &amp;lt;1,1&amp;gt;.&amp;lt;br&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;The uv_coordinates come from the square &amp;lt;0,0&amp;gt; - &amp;lt;1,1&amp;gt;.&amp;lt;br&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;code&amp;gt;Spl      : The spline to be rotated.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;code&amp;gt;Spl&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;&amp;lt;/code&amp;gt; &lt;/ins&gt;     : The spline to be rotated.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;The spline is evaluated from t=0 to t=1. For the normal calculation,&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;The spline is evaluated from t=0 to t=1. For the normal calculation,&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;it is required that all splines (also linear_spline) have one extra&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;it is required that all splines (also linear_spline) have one extra&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Jholsenback</name></author>
	</entry>
	<entry>
		<id>https://wiki.povray.org/content?title=Reference:Meshmaker.inc&amp;diff=7928&amp;oldid=prev</id>
		<title>Jholsenback: formatting</title>
		<link rel="alternate" type="text/html" href="https://wiki.povray.org/content?title=Reference:Meshmaker.inc&amp;diff=7928&amp;oldid=prev"/>
		<updated>2013-04-17T22:48:42Z</updated>

		<summary type="html">&lt;p&gt;formatting&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left diff-editfont-monospace&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 22:48, 17 April 2013&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l1&quot; &gt;Line 1:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 1:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[Category:Include Files]]  &lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[Category:Include Files]]  &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;meshmaker.inc  -  various mesh2 objects by splines.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;&amp;lt;p&amp;gt;&lt;/ins&gt;meshmaker.inc  -  various mesh2 objects by splines.&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;&amp;lt;/p&amp;gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;dl&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;dl&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;dt&amp;gt;&amp;lt;code&amp;gt;MSM(SplineArray, SplRes, Interp_type,  InterpRes, FileName)&amp;lt;/code&amp;gt;&amp;lt;!--&amp;lt;/dt&amp;gt;---&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;dt&amp;gt;&amp;lt;code&amp;gt;MSM(SplineArray, SplRes, Interp_type,  InterpRes, FileName)&amp;lt;/code&amp;gt;&amp;lt;!--&amp;lt;/dt&amp;gt;---&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Jholsenback</name></author>
	</entry>
	<entry>
		<id>https://wiki.povray.org/content?title=Reference:Meshmaker.inc&amp;diff=7921&amp;oldid=prev</id>
		<title>Flohmuller: Created page with &quot;Category:Include Files  meshmaker.inc  -  various mesh2 objects by splines. &lt;dl&gt; &lt;dt&gt;&lt;code&gt;MSM(SplineArray, SplRes, Interp_type,  InterpRes, FileName)&lt;/code&gt;&lt;!--&lt;/dt&gt;---&gt; ...&quot;</title>
		<link rel="alternate" type="text/html" href="https://wiki.povray.org/content?title=Reference:Meshmaker.inc&amp;diff=7921&amp;oldid=prev"/>
		<updated>2013-04-17T22:08:20Z</updated>

		<summary type="html">&lt;p&gt;Created page with &amp;quot;&lt;a href=&quot;/content/Category:Include_Files&quot; title=&quot;Category:Include Files&quot;&gt;Category:Include Files&lt;/a&gt;  meshmaker.inc  -  various mesh2 objects by splines. &amp;lt;dl&amp;gt; &amp;lt;dt&amp;gt;&amp;lt;code&amp;gt;MSM(SplineArray, SplRes, Interp_type,  InterpRes, FileName)&amp;lt;/code&amp;gt;&amp;lt;!--&amp;lt;/dt&amp;gt;---&amp;gt; ...&amp;quot;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;[[Category:Include Files]] &lt;br /&gt;
meshmaker.inc  -  various mesh2 objects by splines.&lt;br /&gt;
&amp;lt;dl&amp;gt;&lt;br /&gt;
&amp;lt;dt&amp;gt;&amp;lt;code&amp;gt;MSM(SplineArray, SplRes, Interp_type,  InterpRes, FileName)&amp;lt;/code&amp;gt;&amp;lt;!--&amp;lt;/dt&amp;gt;---&amp;gt;&lt;br /&gt;
	&amp;lt;dd&amp;gt;Generates a mesh2 from an array of splines and optionally writes the mesh2 object as a file of the given &amp;lt;code&amp;gt;FileName&amp;lt;/code&amp;gt;.&amp;lt;br&amp;gt;&lt;br /&gt;
The uv_coordinates come from the square &amp;lt;0,0&amp;gt; - &amp;lt;1,1&amp;gt;.&amp;lt;br&amp;gt;&lt;br /&gt;
The spline is evaluated from t=0 to t=1. &amp;lt;br&amp;gt;&lt;br /&gt;
For the normal calculation, it is required that all splines (also linear_spline) have one extra&lt;br /&gt;
point before t=0 and after t=1.&amp;lt;!--&amp;lt;/dt&amp;gt;---&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;dt&amp;gt;&amp;lt;code&amp;gt;BuildWriteMesh2(VecArr, NormArr, UVArr, U, V, FileName)&amp;lt;/code&amp;gt;&amp;lt;!--&amp;lt;/dt&amp;gt;---&amp;gt;&lt;br /&gt;
	&amp;lt;dd&amp;gt;Generates and optionally writes a mesh2 object based on 3 input arrays,&lt;br /&gt;
the number of quads in U and V direction and a filename.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;VecArr&amp;lt;/code&amp;gt;   : The array that contains the vertices of the triangles in the mesh.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;NormArr&amp;lt;/code&amp;gt;  : The array with the normal vectors that go with the vertices.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;UVArr&amp;lt;/code&amp;gt;    : The array containing the uv_vectors.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;U&amp;lt;/code&amp;gt;        : The amount of subdivisions of the surface in the u-direction.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;V&amp;lt;/code&amp;gt;        : The amount of subdivisions in the v-direction.&amp;lt;br&amp;gt;&lt;br /&gt;
Based on the U and V values the face_indices of the  triangles in the mesh are calculated.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;FileName&amp;lt;/code&amp;gt; : The name of the file to which the mesh will be written. &lt;br /&gt;
If is an empty string (&amp;quot;&amp;quot;), no file will be written.&amp;lt;br&amp;gt;&lt;br /&gt;
If the file extension is 'obj' a Wavefront objectfile will be written.&amp;lt;br&amp;gt;&lt;br /&gt;
If the extension is 'pcm' a compressed mesh file is written.&amp;lt;br&amp;gt;&lt;br /&gt;
If a file name is given, the macro will first check if it already exists.&amp;lt;br&amp;gt;&lt;br /&gt;
If that is so, it will try to parse the existing file unless it's a '*.obj', '*.pcm' or '*.arr' file as POV-Ray&lt;br /&gt;
can not read them directly. In this case a new mesh will be generated,&lt;br /&gt;
but the existing files will _not_ be over-written.&amp;lt;!--&amp;lt;/dd&amp;gt;---&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;dt&amp;gt;&amp;lt;code&amp;gt;BuildSpline(Arr, SplType)&amp;lt;/code&amp;gt;&amp;lt;!--&amp;lt;/dt&amp;gt;---&amp;gt; &lt;br /&gt;
	&amp;lt;dd&amp;gt;A helper macro for MSM()&amp;lt;br&amp;gt;&lt;br /&gt;
Generates from a array &amp;lt;code&amp;gt;Arr&amp;lt;/code&amp;gt; a spline of the given spline type &amp;lt;code&amp;gt;SplType&amp;lt;/code&amp;gt;.&amp;lt;!--&amp;lt;/dd&amp;gt;---&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;dt&amp;gt;&amp;lt;code&amp;gt;CheckFileName(FileName)&amp;lt;/code&amp;gt;&amp;lt;!--&amp;lt;/dt&amp;gt;---&amp;gt; &lt;br /&gt;
	&amp;lt;dd&amp;gt;A helper macro for MSM()&amp;lt;br&amp;gt;&lt;br /&gt;
If Return has a value of 0 the mesh will not be build,&lt;br /&gt;
but it will be parsed from file.&amp;lt;!--&amp;lt;/dd&amp;gt;---&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;dt&amp;gt;&amp;lt;code&amp;gt;LInterpolate(Val, Min, Max)&amp;lt;/code&amp;gt;&amp;lt;!--&amp;lt;/dt&amp;gt;---&amp;gt; &lt;br /&gt;
	&amp;lt;dd&amp;gt;A helper macro for MSM()&amp;lt;br&amp;gt;&lt;br /&gt;
Linear interpolation of a vector or float between &amp;lt;code&amp;gt;Min&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;Max&amp;lt;/code&amp;gt;.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;Min&amp;lt;/code&amp;gt; : minimal float value or vector.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;Max&amp;lt;/code&amp;gt; : Maximal float value or vector.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;Val&amp;lt;/code&amp;gt; : A float in the range 0 - 1.&amp;lt;!--&amp;lt;/dd&amp;gt;---&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;dt&amp;gt;&amp;lt;code&amp;gt;RangeMM()  = function(Val,Rmin,Rmax,Min,Max)&amp;lt;/code&amp;gt;&amp;lt;!--&amp;lt;/dt&amp;gt;---&amp;gt; &lt;br /&gt;
	&amp;lt;dd&amp;gt;A helper function for MSM()&amp;lt;br&amp;gt;&lt;br /&gt;
Adjusts input values in the range [&amp;lt;code&amp;gt;RMin, RMax&amp;lt;/code&amp;gt;] to fit in the range [Min, Max].&lt;br /&gt;
&amp;lt;code&amp;gt;Val&amp;lt;/code&amp;gt;: A float value in the range [Rmin, Rmax].&amp;lt;!--&amp;lt;/dd&amp;gt;---&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;dt&amp;gt;&amp;lt;code&amp;gt;Parametric(__F1__, __F2__, __F3__, UVmin, UVmax, Iter_U, Iter_V, FileName)&amp;lt;/code&amp;gt;&amp;lt;!--&amp;lt;/dt&amp;gt;---&amp;gt;&lt;br /&gt;
	&amp;lt;dd&amp;gt;Generates a mesh2 object from the parametric uv functions &amp;lt;code&amp;gt;__F1__, __F2__, __F3__&amp;lt;/code&amp;gt;&lt;br /&gt;
in the ranges between &amp;lt;code&amp;gt;UVmin&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;UVmax&amp;lt;/code&amp;gt; with the iteration steps&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;Iter_U&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;Iter_V&amp;lt;/code&amp;gt; and optionally saves the mesh2 object as a file with the name &amp;lt;code&amp;gt;FileName&amp;lt;/code&amp;gt;.&amp;lt;!--&amp;lt;/dd&amp;gt;---&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;dt&amp;gt;&amp;lt;code&amp;gt;Paramcalc(UVmin, UVmax, Iter_U, Iter_V, FileName)&amp;lt;/code&amp;gt;&amp;lt;!--&amp;lt;/dt&amp;gt;---&amp;gt;&lt;br /&gt;
	&amp;lt;dd&amp;gt;The kernel of the macro Parametric(). See &amp;lt;code&amp;gt;Parametric()&amp;lt;/code&amp;gt;.&amp;lt;!--&amp;lt;/dd&amp;gt;---&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;dt&amp;gt;&amp;lt;code&amp;gt; Prism1(Spl, ResSpl, PSpl, PRes, FileName)&amp;lt;/code&amp;gt;&amp;lt;!--&amp;lt;/dt&amp;gt;---&amp;gt;&lt;br /&gt;
	&amp;lt;dd&amp;gt;Generates a mesh2 object by extruding the spline &amp;lt;code&amp;gt;Spl&amp;lt;/code&amp;gt; along the y-axis with the resolution spline &amp;lt;code&amp;gt;ResSpl&amp;lt;/code&amp;gt;.&lt;br /&gt;
In every step the spline is scaled by the 'relative' distance from the&lt;br /&gt;
y-axis of the second spline (PSpl).&amp;lt;br&amp;gt;&lt;br /&gt;
The uv_coordinates come from the square &amp;lt;0,0&amp;gt; - &amp;lt;1,1&amp;gt;.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;Spl&amp;lt;/code&amp;gt;  : The spline to be extruded.&amp;lt;br&amp;gt;&lt;br /&gt;
The spline is evaluated from t=0 to t=1. For the normal calculation,&amp;lt;br&amp;gt;&lt;br /&gt;
it is required that all splines (also linear_spline) have one extra&amp;lt;br&amp;gt;&lt;br /&gt;
point before t=0 and after t=1.&lt;br /&gt;
&amp;lt;code&amp;gt;ResSpl&amp;lt;/code&amp;gt;  : The amount of triangles to be used along the spline.&lt;br /&gt;
&amp;lt;code&amp;gt;PSpl&amp;lt;/code&amp;gt;    : The spline that determines by what amount the extrusion&amp;lt;br&amp;gt;&lt;br /&gt;
is scaled in each step. The scaling is based on the relative distance from the y-axis.&amp;lt;br&amp;gt;&lt;br /&gt;
That is, at t=0 the scale is always 1, so that the start of the shape is&amp;lt;br&amp;gt;&lt;br /&gt;
identical to the spline &amp;lt;code&amp;gt;Spl&amp;lt;/code&amp;gt;.&amp;lt;br&amp;gt;&lt;br /&gt;
PSpl also sets the height of the resulting shape (its y-value at t=1).&amp;lt;br&amp;gt;&lt;br /&gt;
The spline is evaluated from t=0 to t=1. For the normal calculation,&amp;lt;br&amp;gt;&lt;br /&gt;
it is required that all splines (also linear_spline) have one extra &amp;lt;br&amp;gt;&lt;br /&gt;
point before t=0 and after t=1. &amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;FileName&amp;lt;/code&amp;gt; : The name of the file to which the mesh will be written.&amp;lt;br&amp;gt;&lt;br /&gt;
If is an empty string (&amp;quot;&amp;quot;), no file will be written. If a file name is given, the macro &amp;lt;br&amp;gt;&lt;br /&gt;
will first check if it already exists. If that is so, it will expect a &amp;lt;br&amp;gt;&lt;br /&gt;
mesh2 with the name &amp;quot;Surface&amp;quot; and try to parse the existing file.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;dt&amp;gt;&amp;lt;code&amp;gt;Lathe(Spl, ResSpl, Rot, ResRot, FileName)&amp;lt;/code&amp;gt;&amp;lt;!--&amp;lt;/dt&amp;gt;---&amp;gt;&lt;br /&gt;
	&amp;lt;dd&amp;gt;This  macro generates a mesh2 object by rotating a two-dimensional curve about the y-axis.&amp;lt;br&amp;gt;&lt;br /&gt;
The uv_coordinates come from the square &amp;lt;0,0&amp;gt; - &amp;lt;1,1&amp;gt;.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;Spl      : The spline to be rotated.&lt;br /&gt;
The spline is evaluated from t=0 to t=1. For the normal calculation,&lt;br /&gt;
it is required that all splines (also linear_spline) have one extra&lt;br /&gt;
point before t=0 and after t=1.&lt;br /&gt;
&amp;lt;code&amp;gt;ResSpl&amp;lt;/code&amp;gt;   : The amount of triangles to be used along the spline.&lt;br /&gt;
&amp;lt;code&amp;gt;Rot&amp;lt;/code&amp;gt;      : The angle the spline has to be rotated.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;ResRot&amp;lt;/code&amp;gt;   : The amount of triangles to be used in the circumference.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;FileName&amp;lt;/code&amp;gt; : The name of the file to which the mesh will be written.&amp;lt;br&amp;gt;&lt;br /&gt;
If is an  empty string (&amp;quot;&amp;quot;), no file will be written.&amp;lt;br&amp;gt;&lt;br /&gt;
If the file extension is 'obj' a Wavefront objectfile will be written.&amp;lt;br&amp;gt;&lt;br /&gt;
If the extension is 'pcm' a compressed mesh file is written.&amp;lt;br&amp;gt;&lt;br /&gt;
If a file name is given, the macro will first check if it already exists.&amp;lt;br&amp;gt;&lt;br /&gt;
If that is so, it will try to parse the existing file unless it's a '*.obj', &amp;lt;br&amp;gt;&lt;br /&gt;
'*.pcm' or '*.arr' file as POV-Ray can not read them directly. In this case a new &amp;lt;br&amp;gt;&lt;br /&gt;
mesh will be generated, but the existing files will _not_ be over-written. &amp;lt;!--&amp;lt;/dd&amp;gt;---&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;dt&amp;gt;&amp;lt;code&amp;gt;Coons(Spl1, Spl2, Spl3, Spl4, Iter_U, Iter_V, FileName)&amp;lt;/code&amp;gt;&amp;lt;!--&amp;lt;/dt&amp;gt;---&amp;gt;&lt;br /&gt;
	&amp;lt;dd&amp;gt;Generates a mesh2 'coons surface' defined by four splines, all attached head to tail to the previous / next one.&amp;lt;br&amp;gt;&lt;br /&gt;
The uv_coordinates come from the square &amp;lt;0,0&amp;gt; - &amp;lt;1,1&amp;gt;.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;Spl1 - 4&amp;lt;/code&amp;gt; : The four spline that define the surface.&amp;lt;br&amp;gt;&lt;br /&gt;
The splines are evaluated from t=0 to t=1. &amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;Iter_U&amp;lt;/code&amp;gt;   : The resolution for the splines 1 and 3.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;Iter_V&amp;lt;/code&amp;gt;   : The resolution for the splines 2 and 4.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;FileName&amp;lt;/code&amp;gt; : The name of the file to which the mesh will be written.&amp;lt;br&amp;gt;&lt;br /&gt;
If is an empty string (&amp;quot;&amp;quot;), no file will be written.&amp;lt;br&amp;gt;&lt;br /&gt;
If the file extension is 'obj' a Wavefront objectfile will be written.&amp;lt;br&amp;gt;&lt;br /&gt;
If the extension is 'pcm' a compressed mesh file is written.&amp;lt;br&amp;gt;&lt;br /&gt;
If a file name is given, the macro will first check if it already exists.&amp;lt;br&amp;gt;&lt;br /&gt;
If that is so, it will try to parse the existing file unless it's a '*.obj',&amp;lt;br&amp;gt;&lt;br /&gt;
'*.pcm' or '*.arr' file as POV-Ray can not read them directly. In this case a new&amp;lt;br&amp;gt;&lt;br /&gt;
mesh will be generated, but the existing files will _not_ be over-written.&amp;lt;!--&amp;lt;/dd&amp;gt;---&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;dt&amp;gt;&amp;lt;code&amp;gt;TwoVarSurf(__Fuv, Urange, Vrange, Iter_U, Iter_V, FileName)&amp;lt;/code&amp;gt;&amp;lt;!--&amp;lt;/dt&amp;gt;---&amp;gt;&lt;br /&gt;
	&amp;lt;dd&amp;gt;Generates a mesh2 object by extruding an uv-function.&lt;br /&gt;
&amp;lt;code&amp;gt;Urange&amp;lt;/code&amp;gt;   : The range in x direction.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;Vrange&amp;lt;/code&amp;gt;   : The range in y direction.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;Iter_U&amp;lt;/code&amp;gt;   : The resolution in x direction.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;Iter_V&amp;lt;/code&amp;gt;   : The resolution in y direction.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;FileName&amp;lt;/code&amp;gt; : The name of the file to which the mesh will be written.&amp;lt;br&amp;gt;&lt;br /&gt;
If is an empty string (&amp;quot;&amp;quot;), no file will be written. If a file name is given, the macro &amp;lt;br&amp;gt;&lt;br /&gt;
will first check if it already exists. If that is so, it will expect a &amp;lt;br&amp;gt;&lt;br /&gt;
mesh2 with the name &amp;quot;Surface&amp;quot; and try to parse the existing file.&amp;lt;!--&amp;lt;/dd&amp;gt;---&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;dt&amp;gt;&amp;lt;code&amp;gt;SweepSpline1(Track,Shape,Waist,U,V,Filename)&amp;lt;/code&amp;gt;&amp;lt;!--&amp;lt;/dt&amp;gt;---&amp;gt;&lt;br /&gt;
	&amp;lt;dd&amp;gt;Generates a mesh2 object by extruding a spline &amp;lt;code&amp;gt;Shape&amp;lt;/code&amp;gt; along &amp;lt;code&amp;gt;Track&amp;lt;/code&amp;gt;&lt;br /&gt;
and optionally writes it as a file with method 1.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;FileName&amp;lt;/code&amp;gt; : The name of the file to which the mesh will be written.&lt;br /&gt;
If is an empty string (&amp;quot;&amp;quot;), no file will be written. If a file name is given, the macro &amp;lt;br&amp;gt;&lt;br /&gt;
will first check if it already exists. If that is so, it will expect a &amp;lt;br&amp;gt;&lt;br /&gt;
mesh2 with the name &amp;quot;Surface&amp;quot; and try to parse the existing file.&amp;lt;!--&amp;lt;/dd&amp;gt;---&amp;gt;&lt;br /&gt;
&amp;lt;dt&amp;gt;&amp;lt;code&amp;gt;SweepSpline2(Track,Shape,Waist,U,V,Filename)&amp;lt;/code&amp;gt;&amp;lt;!--&amp;lt;/dt&amp;gt;---&amp;gt;&lt;br /&gt;
	&amp;lt;dd&amp;gt;Generates a mesh2 object by extruding a spline &amp;lt;code&amp;gt;Shape&amp;lt;/code&amp;gt; along &amp;lt;code&amp;gt;Track&amp;lt;/code&amp;gt;&lt;br /&gt;
and optionally writes it as a file with method 2.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;FileName&amp;lt;/code&amp;gt; : The name of the file to which the mesh will be written.&lt;br /&gt;
If is an empty string (&amp;quot;&amp;quot;), no file will be written. If a file name is given, the macro &amp;lt;br&amp;gt;&lt;br /&gt;
will first check if it already exists. If that is so, it will expect a &amp;lt;br&amp;gt;&lt;br /&gt;
mesh2 with the name &amp;quot;Surface&amp;quot; and try to parse the existing file.&amp;lt;!--&amp;lt;/dd&amp;gt;---&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/dl&amp;gt;&lt;/div&gt;</summary>
		<author><name>Flohmuller</name></author>
	</entry>
</feed>