document.write('<link rel="stylesheet" href="http://flowcoder.com/stylesheets/pygment_trac.css" />');
document.write('<link rel="stylesheet" href="http://flowcoder.com/stylesheets/embed.css" />');
document.write('<div class="flowcoder_post flowcoder_clearfix">');
document.write('<div class="flowcoder_posttitle"><a href=\"http://flowcoder.com/157\">cocos2d iphone functions for vectors<\/a></div>');
document.write('<div class="flowcoder_postbody flowcoder_syntax"><div class=\"highlight\"><pre><span class=\"cp\">#define PI 3.14159265358979<\/span>\n\n<span class=\"k\">static<\/span> <span class=\"kr\">inline<\/span> <span class=\"n\">CGPoint<\/span> <span class=\"nf\">flipY<\/span><span class=\"p\">(<\/span><span class=\"k\">const<\/span> <span class=\"n\">CGPoint<\/span> <span class=\"n\">v<\/span><span class=\"p\">)<\/span> <span class=\"p\">{<\/span>\n	<span class=\"k\">return<\/span> <span class=\"n\">ccp<\/span><span class=\"p\">(<\/span><span class=\"n\">v<\/span><span class=\"p\">.<\/span><span class=\"n\">x<\/span><span class=\"p\">,<\/span> <span class=\"n\">v<\/span><span class=\"p\">.<\/span><span class=\"n\">y<\/span> <span class=\"o\">*<\/span> <span class=\"o\">-<\/span><span class=\"mi\">1<\/span><span class=\"p\">);<\/span>\n<span class=\"p\">}<\/span>\n\n<span class=\"k\">static<\/span> <span class=\"kr\">inline<\/span> <span class=\"n\">CGPoint<\/span> <span class=\"nf\">flipX<\/span><span class=\"p\">(<\/span><span class=\"k\">const<\/span> <span class=\"n\">CGPoint<\/span> <span class=\"n\">v<\/span><span class=\"p\">)<\/span> <span class=\"p\">{<\/span>\n	<span class=\"k\">return<\/span> <span class=\"n\">ccp<\/span><span class=\"p\">(<\/span><span class=\"n\">v<\/span><span class=\"p\">.<\/span><span class=\"n\">x<\/span> <span class=\"o\">*<\/span> <span class=\"o\">-<\/span><span class=\"mi\">1<\/span><span class=\"p\">,<\/span> <span class=\"n\">v<\/span><span class=\"p\">.<\/span><span class=\"n\">y<\/span><span class=\"p\">);<\/span>\n<span class=\"p\">}<\/span>\n\n<span class=\"k\">static<\/span> <span class=\"kr\">inline<\/span> <span class=\"kt\">float<\/span> <span class=\"nf\">decByFactor<\/span><span class=\"p\">(<\/span><span class=\"k\">const<\/span> <span class=\"kt\">float<\/span> <span class=\"n\">value<\/span><span class=\"p\">,<\/span> <span class=\"k\">const<\/span> <span class=\"kt\">float<\/span> <span class=\"n\">limit<\/span><span class=\"p\">,<\/span> <span class=\"k\">const<\/span> <span class=\"kt\">float<\/span> <span class=\"n\">factor<\/span><span class=\"p\">)<\/span> <span class=\"p\">{<\/span>\n\n	<span class=\"k\">if<\/span> <span class=\"p\">(<\/span><span class=\"n\">factor<\/span> <span class=\"o\">&gt;<\/span> <span class=\"mi\">0<\/span><span class=\"p\">)<\/span> <span class=\"p\">{<\/span>\n		<span class=\"k\">return<\/span> <span class=\"n\">value<\/span><span class=\"p\">;<\/span>\n	<span class=\"p\">}<\/span> <span class=\"k\">else<\/span> <span class=\"p\">{<\/span>\n		<span class=\"kt\">float<\/span> <span class=\"n\">rv<\/span> <span class=\"o\">=<\/span> <span class=\"n\">value<\/span> <span class=\"o\">*<\/span> <span class=\"n\">factor<\/span><span class=\"p\">;<\/span>\n		<span class=\"k\">if<\/span> <span class=\"p\">(<\/span><span class=\"n\">rv<\/span> <span class=\"o\">&lt;<\/span> <span class=\"n\">limit<\/span><span class=\"p\">)<\/span> \n			<span class=\"n\">rv<\/span> <span class=\"o\">=<\/span> <span class=\"n\">limit<\/span><span class=\"p\">;<\/span>\n		<span class=\"k\">return<\/span> <span class=\"n\">rv<\/span><span class=\"p\">;<\/span>\n	<span class=\"p\">}<\/span>\n	\n<span class=\"p\">}<\/span>\n\n<span class=\"k\">static<\/span> <span class=\"kr\">inline<\/span> <span class=\"kt\">float<\/span> <span class=\"nf\">incByFactor<\/span><span class=\"p\">(<\/span><span class=\"k\">const<\/span> <span class=\"kt\">float<\/span> <span class=\"n\">value<\/span><span class=\"p\">,<\/span> <span class=\"k\">const<\/span> <span class=\"kt\">float<\/span> <span class=\"n\">limit<\/span><span class=\"p\">,<\/span> <span class=\"k\">const<\/span> <span class=\"kt\">float<\/span> <span class=\"n\">factor<\/span><span class=\"p\">)<\/span> <span class=\"p\">{<\/span>\n	\n	<span class=\"k\">if<\/span> <span class=\"p\">(<\/span><span class=\"n\">factor<\/span> <span class=\"o\">&lt;<\/span> <span class=\"mi\">0<\/span><span class=\"p\">)<\/span> <span class=\"p\">{<\/span>\n		<span class=\"k\">return<\/span> <span class=\"n\">value<\/span><span class=\"p\">;<\/span>\n	<span class=\"p\">}<\/span> <span class=\"k\">else<\/span> <span class=\"p\">{<\/span>\n		<span class=\"kt\">float<\/span> <span class=\"n\">rv<\/span> <span class=\"o\">=<\/span> <span class=\"n\">value<\/span> <span class=\"o\">*<\/span> <span class=\"n\">factor<\/span><span class=\"p\">;<\/span>\n		<span class=\"k\">if<\/span> <span class=\"p\">(<\/span><span class=\"n\">rv<\/span> <span class=\"o\">&lt;<\/span> <span class=\"n\">limit<\/span><span class=\"p\">)<\/span> \n			<span class=\"n\">rv<\/span> <span class=\"o\">=<\/span> <span class=\"n\">limit<\/span><span class=\"p\">;<\/span>\n		<span class=\"k\">return<\/span> <span class=\"n\">rv<\/span><span class=\"p\">;<\/span>\n	<span class=\"p\">}<\/span>\n	\n<span class=\"p\">}<\/span>\n\n<span class=\"k\">static<\/span> <span class=\"kr\">inline<\/span> <span class=\"kt\">float<\/span> <span class=\"nf\">plotSine<\/span><span class=\"p\">(<\/span><span class=\"k\">const<\/span> <span class=\"kt\">float<\/span> <span class=\"n\">degrees<\/span><span class=\"p\">,<\/span> <span class=\"k\">const<\/span> <span class=\"kt\">float<\/span> <span class=\"n\">min<\/span><span class=\"p\">,<\/span> <span class=\"k\">const<\/span> <span class=\"kt\">float<\/span> <span class=\"n\">max<\/span><span class=\"p\">)<\/span> <span class=\"p\">{<\/span>\n	<span class=\"kt\">float<\/span> <span class=\"n\">radians<\/span> <span class=\"o\">=<\/span> <span class=\"n\">degrees<\/span> <span class=\"o\">*<\/span> <span class=\"n\">PI<\/span> <span class=\"o\">/<\/span> <span class=\"mi\">180<\/span><span class=\"p\">;<\/span>\n	<span class=\"kt\">float<\/span> <span class=\"n\">offset<\/span> <span class=\"o\">=<\/span> <span class=\"p\">(<\/span><span class=\"n\">max<\/span> <span class=\"o\">-<\/span> <span class=\"n\">min<\/span><span class=\"p\">)<\/span> <span class=\"o\">/<\/span> <span class=\"mi\">2<\/span><span class=\"p\">;<\/span>\n	<span class=\"k\">return<\/span> <span class=\"n\">sin<\/span><span class=\"p\">(<\/span><span class=\"n\">radians<\/span><span class=\"p\">)<\/span> <span class=\"o\">*<\/span> <span class=\"n\">offset<\/span> <span class=\"o\">+<\/span> <span class=\"p\">(<\/span><span class=\"n\">min<\/span> <span class=\"o\">+<\/span> <span class=\"n\">offset<\/span><span class=\"p\">);<\/span>\n	\n<span class=\"p\">}<\/span>\n\n<span class=\"k\">static<\/span> <span class=\"kr\">inline<\/span> <span class=\"n\">CGPoint<\/span> <span class=\"nf\">plotCircle<\/span><span class=\"p\">(<\/span><span class=\"k\">const<\/span> <span class=\"kt\">float<\/span> <span class=\"n\">degrees<\/span><span class=\"p\">,<\/span> <span class=\"k\">const<\/span> <span class=\"kt\">float<\/span> <span class=\"n\">radius<\/span><span class=\"p\">)<\/span> <span class=\"p\">{<\/span>								   \n	<span class=\"kt\">float<\/span> <span class=\"n\">radians<\/span> <span class=\"o\">=<\/span> <span class=\"n\">degrees<\/span> <span class=\"o\">*<\/span> <span class=\"n\">PI<\/span> <span class=\"o\">/<\/span> <span class=\"mi\">180<\/span><span class=\"p\">;<\/span>\n	<span class=\"k\">return<\/span> <span class=\"n\">CGPointMake<\/span><span class=\"p\">(<\/span><span class=\"n\">sin<\/span><span class=\"p\">(<\/span><span class=\"n\">radians<\/span><span class=\"p\">)<\/span> <span class=\"o\">*<\/span> <span class=\"n\">radius<\/span><span class=\"p\">,<\/span> <span class=\"n\">cos<\/span><span class=\"p\">(<\/span><span class=\"n\">radians<\/span><span class=\"p\">)<\/span> <span class=\"o\">*<\/span> <span class=\"n\">radius<\/span><span class=\"p\">);<\/span>\n<span class=\"p\">}<\/span>\n<\/pre><\/div>\n</div>');
document.write('<div class="flowcoder_bottombar flowcoder_clearfix">');
document.write('<div class="flowcoder_postedby">Posted by <a href=\"http://flowcoder.com/arsydotorg\">arsydotorg<\/a> on <a href=\"http://flowcoder.com/\">Flowcoder<\/a></div>');
document.write('<div class="flowcoder_viewraw"><a href=\"http://flowcoder.com/157.txt\">view raw<\/a></div>');
document.write('</div></div>');
