www.pudn.com > 2005010815393829175.zip > 3dmanual.rtf


{\rtf1\ansi\ansicpg1252\uc1 \deff0\deflang1033\deflangfe1033{\fonttbl{\f0\froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman;}{\f14\fnil\fcharset2\fprq2{\*\panose 05000000000000000000}Wingdings;} 
{\f15\fswiss\fcharset0\fprq2{\*\panose 020b0604030504040204}Tahoma;}{\f16\froman\fcharset238\fprq2 Times New Roman CE;}{\f17\froman\fcharset204\fprq2 Times New Roman Cyr;}{\f19\froman\fcharset161\fprq2 Times New Roman Greek;} 
{\f20\froman\fcharset162\fprq2 Times New Roman Tur;}{\f21\froman\fcharset186\fprq2 Times New Roman Baltic;}{\f106\fswiss\fcharset238\fprq2 Tahoma CE;}{\f107\fswiss\fcharset204\fprq2 Tahoma Cyr;}{\f109\fswiss\fcharset161\fprq2 Tahoma Greek;} 
{\f110\fswiss\fcharset162\fprq2 Tahoma Tur;}{\f111\fswiss\fcharset186\fprq2 Tahoma Baltic;}}{\colortbl;\red0\green0\blue0;\red0\green0\blue255;\red0\green255\blue255;\red0\green255\blue0;\red255\green0\blue255;\red255\green0\blue0;\red255\green255\blue0; 
\red255\green255\blue255;\red0\green0\blue128;\red0\green128\blue128;\red0\green128\blue0;\red128\green0\blue128;\red128\green0\blue0;\red128\green128\blue0;\red128\green128\blue128;\red192\green192\blue192;}{\stylesheet{ 
\nowidctlpar\widctlpar\adjustright \fs20\cgrid \snext0 Normal;}{\s1\keepn\nowidctlpar\widctlpar\outlinelevel0\adjustright \cgrid \sbasedon0 \snext0 heading 1;}{\s2\keepn\nowidctlpar\widctlpar\outlinelevel1\adjustright \b\fs32\cgrid \sbasedon0 \snext0  
heading 2;}{\s3\fi720\keepn\nowidctlpar\widctlpar\outlinelevel2\adjustright \cgrid \sbasedon0 \snext0 heading 3;}{\s4\keepn\nowidctlpar\widctlpar\outlinelevel3\adjustright \b\fs28 \sbasedon0 \snext0 heading 4;}{ 
\s5\keepn\nowidctlpar\widctlpar\outlinelevel4\adjustright \b\cgrid \sbasedon0 \snext0 heading 5;}{\s6\keepn\nowidctlpar\widctlpar\outlinelevel5\adjustright \fs32\cgrid \sbasedon0 \snext0 heading 6;}{\*\cs10 \additive Default Paragraph Font;}{ 
\s15\fi720\nowidctlpar\widctlpar\adjustright \cgrid \sbasedon0 \snext15 Body Text 2;}{\s16\nowidctlpar\widctlpar\adjustright \cbpat9 \f15\fs20\cgrid \sbasedon0 \snext16 Document Map;}{\s17\nowidctlpar\widctlpar\adjustright \cgrid \sbasedon0 \snext17  
Body Text;}{\*\cs18 \additive \ul\cf2 \sbasedon10 Hyperlink;}}{\*\listtable{\list\listtemplateid67698703\listsimple{\listlevel\levelnfc0\leveljc0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext\'02\'00.;}{\levelnumbers\'01;}\fbias0  
\fi-360\li360\jclisttab\tx360 }{\listname ;}\listid149639762}{\list\listtemplateid67698703\listsimple{\listlevel\levelnfc0\leveljc0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext\'02\'00.;}{\levelnumbers\'01;}\fbias0 \fi-360\li360 
\jclisttab\tx360 }{\listname ;}\listid1095587414}{\list\listtemplateid-787341414\listsimple{\listlevel\levelnfc0\leveljc0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext\'02\'00.;}{\levelnumbers\'01;}\f0\fs24\fbias0 \fi-360\li360 
\jclisttab\tx360 }{\listname ;}\listid1200706864}{\list\listtemplateid67698703\listsimple{\listlevel\levelnfc0\leveljc0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext\'02\'00.;}{\levelnumbers\'01;}\fbias0 \fi-360\li360\jclisttab\tx360 } 
{\listname ;}\listid1470128291}}{\*\listoverridetable{\listoverride\listid1095587414\listoverridecount0\ls1}{\listoverride\listid1200706864\listoverridecount0\ls2}{\listoverride\listid149639762\listoverridecount0\ls3}{\listoverride\listid1470128291 
\listoverridecount0\ls4}}{\info{\author nchentan}{\operator nchentan}{\creatim\yr2003\mo6\dy4\hr11\min43}{\revtim\yr2003\mo8\dy25\hr13\min52}{\version31}{\edmins352}{\nofpages7}{\nofwords1870}{\nofchars10660}{\*\company University of Michigan} 
{\nofcharsws0}{\vern71}}\margl1440\margr1440\margt720\margb720 \widowctrl\ftnbj\aenddoc\hyphcaps0\formshade\viewkind1\viewscale100\pgbrdrhead\pgbrdrfoot \fet0\sectd \linex0\endnhere\sectdefaultcl {\*\pnseclvl1\pnucrm\pnstart1\pnindent720\pnhang 
{\pntxta .}}{\*\pnseclvl2\pnucltr\pnstart1\pnindent720\pnhang{\pntxta .}}{\*\pnseclvl3\pndec\pnstart1\pnindent720\pnhang{\pntxta .}}{\*\pnseclvl4\pnlcltr\pnstart1\pnindent720\pnhang{\pntxta )}}{\*\pnseclvl5\pndec\pnstart1\pnindent720\pnhang{\pntxtb (} 
{\pntxta )}}{\*\pnseclvl6\pnlcltr\pnstart1\pnindent720\pnhang{\pntxtb (}{\pntxta )}}{\*\pnseclvl7\pnlcrm\pnstart1\pnindent720\pnhang{\pntxtb (}{\pntxta )}}{\*\pnseclvl8\pnlcltr\pnstart1\pnindent720\pnhang{\pntxtb (}{\pntxta )}}{\*\pnseclvl9 
\pnlcrm\pnstart1\pnindent720\pnhang{\pntxtb (}{\pntxta )}}\pard\plain \s1\keepn\nowidctlpar\widctlpar\outlinelevel0\adjustright \cgrid {\b\fs36 3D Game Programming using Engine Engine by Nuttapong Chentanez 
\par }\pard\plain \nowidctlpar\widctlpar\adjustright \fs20\cgrid {\lang1024 {\shp{\*\shpinst\shpleft-936\shptop162\shpright9144\shpbottom1602\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpwrk0\shpfblwtxt0\shpz0\shplid1026 
{\sp{\sn shapeType}{\sv 75}}{\sp{\sn fFlipH}{\sv 0}}{\sp{\sn fFlipV}{\sv 0}}{\sp{\sn fLockText}{\sv 1}}{\sp{\sn cxk}{\sv 0}}{\sp{\sn fShadowOK}{\sv 1}}{\sp{\sn f3DOK}{\sv 1}}{\sp{\sn fLineOK}{\sv 1}}{\sp{\sn fFillOK}{\sv 1}} 
{\sp{\sn fFilled}{\sv 0}}{\sp{\sn fNoFillHitTest}{\sv 1}}{\sp{\sn fLine}{\sv 0}}{\sp{\sn fPreferRelativeResize}{\sv 0}}{\sp{\sn lidRegroup}{\sv 1}}}{\shprslt{\*\do\dobxcolumn\dobypara\dodhgt8192\dppolygon\dppolycount4\dpptx0\dppty0\dpptx0\dppty1440 
\dpptx10080\dppty1440\dpptx10080\dppty0\dpx-936\dpy162\dpxsize10080\dpysize1440\dpfillfgcr255\dpfillfgcg255\dpfillfgcb255\dpfillbgcr255\dpfillbgcg255\dpfillbgcb255\dpfillpat0\dplinehollow}}}}{\fs24  
Before reading this part, please make sure that you are familiar with how to program basic 2D game in the Engine Engine, since this part will deal exclusively with 3D programming.  
\par  
\par The classes that are used in 3D game programming in Engine Engine are the followings : 
\par  
\par }{\lang1024 {\shp{\*\shpinst\shpleft8352\shptop42\shpright10130\shpbottom762\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpwrk0\shpfblwtxt0\shpz6\shplid1027{\sp{\sn shapeType}{\sv 2}}{\sp{\sn fFlipH}{\sv 0}}{\sp{\sn fFlipV}{\sv 0}} 
{\sp{\sn lTxid}{\sv 65536}}{\sp{\sn dxTextLeft}{\sv 63649}}{\sp{\sn dyTextTop}{\sv 31825}}{\sp{\sn dxTextRight}{\sv 63649}}{\sp{\sn dyTextBottom}{\sv 31825}}{\sp{\sn anchorText}{\sv 1}}{\sp{\sn hspNext}{\sv 1027}}{\sp{\sn fillColor}{\sv 14934203}} 
{\sp{\sn fFilled}{\sv 1}}{\sp{\sn fLine}{\sv 1}}{\sp{\sn wzName}{\sv \'5f\'73\'31\'30\'33\'35}}{\shptxt \pard\plain \qc\nowidctlpar\widctlpar\adjustright \fs20\cgrid {C_XMesh 
\par }}}{\shprslt{\*\do\dobxcolumn\dobypara\dodhgt8198\dptxbx{\dptxbxtext\pard\plain \qc\nowidctlpar\widctlpar\adjustright \fs20\cgrid {C_XMesh 
\par }}\dpx8352\dpy42\dpxsize1778\dpysize720\dpfillfgcr255\dpfillfgcg255\dpfillfgcb255\dpfillbgcr187\dpfillbgcg224\dpfillbgcb227\dpfillpat1\dplinew15\dplinecor0\dplinecog0\dplinecob0}}} 
{\shp{\*\shpinst\shpleft6480\shptop42\shpright8258\shpbottom762\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpwrk0\shpfblwtxt0\shpz5\shplid1028{\sp{\sn shapeType}{\sv 2}}{\sp{\sn fFlipH}{\sv 0}}{\sp{\sn fFlipV}{\sv 0}} 
{\sp{\sn lTxid}{\sv 131072}}{\sp{\sn dxTextLeft}{\sv 63649}}{\sp{\sn dyTextTop}{\sv 31825}}{\sp{\sn dxTextRight}{\sv 63649}}{\sp{\sn dyTextBottom}{\sv 31825}}{\sp{\sn anchorText}{\sv 1}}{\sp{\sn hspNext}{\sv 1028}}{\sp{\sn fillColor}{\sv 14934203}} 
{\sp{\sn fFilled}{\sv 1}}{\sp{\sn fLine}{\sv 1}}{\sp{\sn wzName}{\sv \'5f\'73\'31\'30\'33\'35}}{\shptxt \pard\plain \qc\nowidctlpar\widctlpar\adjustright \fs20\cgrid {C_BoundingBox 
\par }}}{\shprslt{\*\do\dobxcolumn\dobypara\dodhgt8197\dptxbx{\dptxbxtext\pard\plain \qc\nowidctlpar\widctlpar\adjustright \fs20\cgrid {C_BoundingBox 
\par }}\dpx6480\dpy42\dpxsize1778\dpysize720\dpfillfgcr255\dpfillfgcg255\dpfillfgcb255\dpfillbgcr187\dpfillbgcg224\dpfillbgcb227\dpfillpat1\dplinew15\dplinecor0\dplinecog0\dplinecob0}}} 
{\shp{\*\shpinst\shpleft4608\shptop42\shpright6386\shpbottom762\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpwrk0\shpfblwtxt0\shpz4\shplid1029{\sp{\sn shapeType}{\sv 2}}{\sp{\sn fFlipH}{\sv 0}}{\sp{\sn fFlipV}{\sv 0}} 
{\sp{\sn lTxid}{\sv 196608}}{\sp{\sn dxTextLeft}{\sv 63649}}{\sp{\sn dyTextTop}{\sv 31825}}{\sp{\sn dxTextRight}{\sv 63649}}{\sp{\sn dyTextBottom}{\sv 31825}}{\sp{\sn anchorText}{\sv 1}}{\sp{\sn hspNext}{\sv 1029}}{\sp{\sn fillColor}{\sv 14934203}} 
{\sp{\sn fFilled}{\sv 1}}{\sp{\sn fLine}{\sv 1}}{\sp{\sn wzName}{\sv \'5f\'73\'31\'30\'33\'35}}{\shptxt \pard\plain \qc\nowidctlpar\widctlpar\adjustright \fs20\cgrid {C_Primitive 
\par }}}{\shprslt{\*\do\dobxcolumn\dobypara\dodhgt8196\dptxbx{\dptxbxtext\pard\plain \qc\nowidctlpar\widctlpar\adjustright \fs20\cgrid {C_Primitive 
\par }}\dpx4608\dpy42\dpxsize1778\dpysize720\dpfillfgcr255\dpfillfgcg255\dpfillfgcb255\dpfillbgcr187\dpfillbgcg224\dpfillbgcb227\dpfillpat1\dplinew15\dplinecor0\dplinecog0\dplinecob0}}} 
{\shp{\*\shpinst\shpleft2736\shptop42\shpright4514\shpbottom762\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpwrk0\shpfblwtxt0\shpz3\shplid1030{\sp{\sn shapeType}{\sv 2}}{\sp{\sn fFlipH}{\sv 0}}{\sp{\sn fFlipV}{\sv 0}} 
{\sp{\sn lTxid}{\sv 262144}}{\sp{\sn dxTextLeft}{\sv 63649}}{\sp{\sn dyTextTop}{\sv 31825}}{\sp{\sn dxTextRight}{\sv 63649}}{\sp{\sn dyTextBottom}{\sv 31825}}{\sp{\sn anchorText}{\sv 1}}{\sp{\sn hspNext}{\sv 1030}}{\sp{\sn fillColor}{\sv 14934203}} 
{\sp{\sn fFilled}{\sv 1}}{\sp{\sn fLine}{\sv 1}}{\sp{\sn wzName}{\sv \'5f\'73\'31\'30\'33\'35}}{\sp{\sn lidRegroup}{\sv 1}}{\shptxt \pard\plain \qc\nowidctlpar\widctlpar\adjustright \fs20\cgrid {C_GameObject3D 
\par }}}{\shprslt{\*\do\dobxcolumn\dobypara\dodhgt8195\dptxbx{\dptxbxtext\pard\plain \qc\nowidctlpar\widctlpar\adjustright \fs20\cgrid {C_GameObject3D 
\par }}\dpx2736\dpy42\dpxsize1778\dpysize720\dpfillfgcr255\dpfillfgcg255\dpfillfgcb255\dpfillbgcr187\dpfillbgcg224\dpfillbgcb227\dpfillpat1\dplinew15\dplinecor0\dplinecog0\dplinecob0}}} 
{\shp{\*\shpinst\shpleft864\shptop42\shpright2643\shpbottom762\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpwrk0\shpfblwtxt0\shpz2\shplid1031{\sp{\sn shapeType}{\sv 2}}{\sp{\sn fFlipH}{\sv 0}}{\sp{\sn fFlipV}{\sv 0}} 
{\sp{\sn lTxid}{\sv 327680}}{\sp{\sn dxTextLeft}{\sv 63649}}{\sp{\sn dyTextTop}{\sv 31825}}{\sp{\sn dxTextRight}{\sv 63649}}{\sp{\sn dyTextBottom}{\sv 31825}}{\sp{\sn anchorText}{\sv 1}}{\sp{\sn hspNext}{\sv 1031}}{\sp{\sn fillColor}{\sv 14934203}} 
{\sp{\sn fFilled}{\sv 1}}{\sp{\sn fLine}{\sv 1}}{\sp{\sn wzName}{\sv \'5f\'73\'31\'30\'33\'30}}{\sp{\sn lidRegroup}{\sv 1}}{\shptxt \pard\plain \qc\nowidctlpar\widctlpar\adjustright \fs20\cgrid {C_Light 
\par }}}{\shprslt{\*\do\dobxcolumn\dobypara\dodhgt8194\dptxbx{\dptxbxtext\pard\plain \qc\nowidctlpar\widctlpar\adjustright \fs20\cgrid {C_Light 
\par }}\dpx864\dpy42\dpxsize1779\dpysize720\dpfillfgcr255\dpfillfgcg255\dpfillfgcb255\dpfillbgcr187\dpfillbgcg224\dpfillbgcb227\dpfillpat1\dplinew15\dplinecor0\dplinecog0\dplinecob0}}} 
{\shp{\*\shpinst\shpleft-1008\shptop42\shpright771\shpbottom762\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpwrk0\shpfblwtxt0\shpz1\shplid1032{\sp{\sn shapeType}{\sv 2}}{\sp{\sn fFlipH}{\sv 0}}{\sp{\sn fFlipV}{\sv 0}} 
{\sp{\sn lTxid}{\sv 393216}}{\sp{\sn dxTextLeft}{\sv 63649}}{\sp{\sn dyTextTop}{\sv 31825}}{\sp{\sn dxTextRight}{\sv 63649}}{\sp{\sn dyTextBottom}{\sv 31825}}{\sp{\sn anchorText}{\sv 1}}{\sp{\sn hspNext}{\sv 1032}}{\sp{\sn fillColor}{\sv 14934203}} 
{\sp{\sn fFilled}{\sv 1}}{\sp{\sn fLine}{\sv 1}}{\sp{\sn wzName}{\sv \'5f\'73\'31\'30\'32\'39}}{\sp{\sn lidRegroup}{\sv 1}}{\shptxt \pard\plain \qc\nowidctlpar\widctlpar\adjustright \fs20\cgrid {C_Viewport 
\par }}}{\shprslt{\*\do\dobxcolumn\dobypara\dodhgt8193\dptxbx{\dptxbxtext\pard\plain \qc\nowidctlpar\widctlpar\adjustright \fs20\cgrid {C_Viewport 
\par }}\dpx-1008\dpy42\dpxsize1779\dpysize720\dpfillfgcr255\dpfillfgcg255\dpfillfgcb255\dpfillbgcr187\dpfillbgcg224\dpfillbgcb227\dpfillpat1\dplinew15\dplinecor0\dplinecog0\dplinecob0}}}}{\fs24  
\par  
\par }{\lang1024 {\shp{\*\shpinst\shpleft5472\shptop210\shpright5472\shpbottom642\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpwrk0\shpfblwtxt0\shpz16\shplid1033{\sp{\sn shapeType}{\sv 20}}{\sp{\sn fFlipH}{\sv 0}}{\sp{\sn fFlipV}{\sv 0}} 
{\sp{\sn shapePath}{\sv 4}}{\sp{\sn fFillOK}{\sv 0}}{\sp{\sn fFilled}{\sv 0}}{\sp{\sn lineWidth}{\sv 25400}}{\sp{\sn fArrowheadsOK}{\sv 1}}}{\shprslt{\*\do\dobxcolumn\dobypara\dodhgt8208\dpline\dpptx0\dppty0\dpptx0\dppty432 
\dpx5472\dpy210\dpxsize0\dpysize432\dplinew40\dplinecor0\dplinecog0\dplinecob0}}}}{\fs24  
\par }\pard\plain \s2\keepn\nowidctlpar\widctlpar\outlinelevel1\adjustright \b\fs32\cgrid {\fs28  
\par }\pard\plain \nowidctlpar\widctlpar\adjustright \fs20\cgrid {\lang1024 {\shp{\*\shpinst\shpleft-576\shptop98\shpright9504\shpbottom98\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpwrk0\shpfblwtxt0\shpz17\shplid1043 
{\sp{\sn shapeType}{\sv 20}}{\sp{\sn fFlipH}{\sv 0}}{\sp{\sn fFlipV}{\sv 0}}{\sp{\sn fAutoTextMargin}{\sv 0}}{\sp{\sn fRotateText}{\sv 0}}{\sp{\sn fFitShapeToText}{\sv 0}} 
{\sp{\sn fFitTextToShape}{\sv 0}}{\sp{\sn shapePath}{\sv 4}}{\sp{\sn fFillOK}{\sv 0}}{\sp{\sn fFilled}{\sv 0}}{\sp{\sn lineWidth}{\sv 25400}}{\sp{\sn fArrowheadsOK}{\sv 1}} 
{\sp{\sn fLine}{\sv 1}}{\sp{\sn fHitTestLine}{\sv 1}}{\sp{\sn lineFillShape}{\sv 1}}{\sp{\sn fShadow}{\sv 0}}{\sp{\sn fshadowObscured}{\sv 0}}{\sp{\sn f3D}{\sv 0}}{\sp{\sn fc3DMetallic}{\sv 0}}{\sp{\sn fc3DUseExtrusionColor}{\sv 0}} 
{\sp{\sn fc3DLightFace}{\sv 1}}{\sp{\sn fc3DConstrainRotation}{\sv 1}}{\sp{\sn fc3DRotationCenterAuto}{\sv 0}}{\sp{\sn fc3DParallel}{\sv 1}}{\sp{\sn fc3DKeyHarsh}{\sv 1}}{\sp{\sn fc3DFillHarsh}{\sv 0}}{\sp{\sn fCalloutMinusX}{\sv 0}} 
{\sp{\sn fCalloutMinusY}{\sv 0}}{\sp{\sn fCalloutDropAuto}{\sv 0}}{\sp{\sn fCalloutLengthSpecified}{\sv 0}}}{\shprslt{\*\do\dobxcolumn\dobypara\dodhgt8209\dpline\dpptx0\dppty0\dpptx10080\dppty0\dpx-576\dpy98\dpxsize10080\dpysize0 
\dplinew40\dplinecor0\dplinecog0\dplinecob0}}}{\shp{\*\shpinst\shpleft9504\shptop44\shpright9504\shpbottom476\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpwrk0\shpfblwtxt0\shpz26\shplid1034 
{\sp{\sn shapeType}{\sv 20}}{\sp{\sn fFlipH}{\sv 0}}{\sp{\sn fFlipV}{\sv 0}}{\sp{\sn fAutoTextMargin}{\sv 0}}{\sp{\sn fRotateText}{\sv 0}}{\sp{\sn fFitShapeToText}{\sv 0}} 
{\sp{\sn fFitTextToShape}{\sv 0}}{\sp{\sn shapePath}{\sv 4}}{\sp{\sn fFillOK}{\sv 0}}{\sp{\sn fFilled}{\sv 0}}{\sp{\sn lineWidth}{\sv 25400}}{\sp{\sn fArrowheadsOK}{\sv 1}} 
{\sp{\sn fLine}{\sv 1}}{\sp{\sn fHitTestLine}{\sv 1}}{\sp{\sn lineFillShape}{\sv 1}}{\sp{\sn fShadow}{\sv 0}}{\sp{\sn fshadowObscured}{\sv 0}}{\sp{\sn f3D}{\sv 0}}{\sp{\sn fc3DMetallic}{\sv 0}}{\sp{\sn fc3DUseExtrusionColor}{\sv 0}} 
{\sp{\sn fc3DLightFace}{\sv 1}}{\sp{\sn fc3DConstrainRotation}{\sv 1}}{\sp{\sn fc3DRotationCenterAuto}{\sv 0}}{\sp{\sn fc3DParallel}{\sv 1}}{\sp{\sn fc3DKeyHarsh}{\sv 1}}{\sp{\sn fc3DFillHarsh}{\sv 0}}{\sp{\sn fCalloutMinusX}{\sv 0}} 
{\sp{\sn fCalloutMinusY}{\sv 0}}{\sp{\sn fCalloutDropAuto}{\sv 0}}{\sp{\sn fCalloutLengthSpecified}{\sv 0}}}{\shprslt{\*\do\dobxcolumn\dobypara\dodhgt8218\dpline\dpptx0\dppty0\dpptx0\dppty432\dpx9504\dpy44\dpxsize0\dpysize432 
\dplinew40\dplinecor0\dplinecog0\dplinecob0}}}{\shp{\*\shpinst\shpleft8064\shptop44\shpright8064\shpbottom476\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpwrk0\shpfblwtxt0\shpz25\shplid1035 
{\sp{\sn shapeType}{\sv 20}}{\sp{\sn fFlipH}{\sv 0}}{\sp{\sn fFlipV}{\sv 0}}{\sp{\sn fAutoTextMargin}{\sv 0}}{\sp{\sn fRotateText}{\sv 0}}{\sp{\sn fFitShapeToText}{\sv 0}} 
{\sp{\sn fFitTextToShape}{\sv 0}}{\sp{\sn shapePath}{\sv 4}}{\sp{\sn fFillOK}{\sv 0}}{\sp{\sn fFilled}{\sv 0}}{\sp{\sn lineWidth}{\sv 25400}}{\sp{\sn fArrowheadsOK}{\sv 1}} 
{\sp{\sn fLine}{\sv 1}}{\sp{\sn fHitTestLine}{\sv 1}}{\sp{\sn lineFillShape}{\sv 1}}{\sp{\sn fShadow}{\sv 0}}{\sp{\sn fshadowObscured}{\sv 0}}{\sp{\sn f3D}{\sv 0}}{\sp{\sn fc3DMetallic}{\sv 0}}{\sp{\sn fc3DUseExtrusionColor}{\sv 0}} 
{\sp{\sn fc3DLightFace}{\sv 1}}{\sp{\sn fc3DConstrainRotation}{\sv 1}}{\sp{\sn fc3DRotationCenterAuto}{\sv 0}}{\sp{\sn fc3DParallel}{\sv 1}}{\sp{\sn fc3DKeyHarsh}{\sv 1}}{\sp{\sn fc3DFillHarsh}{\sv 0}}{\sp{\sn fCalloutMinusX}{\sv 0}} 
{\sp{\sn fCalloutMinusY}{\sv 0}}{\sp{\sn fCalloutDropAuto}{\sv 0}}{\sp{\sn fCalloutLengthSpecified}{\sv 0}}}{\shprslt{\*\do\dobxcolumn\dobypara\dodhgt8217\dpline\dpptx0\dppty0\dpptx0\dppty432\dpx8064\dpy44\dpxsize0\dpysize432 
\dplinew40\dplinecor0\dplinecog0\dplinecob0}}}{\shp{\*\shpinst\shpleft6768\shptop44\shpright6768\shpbottom476\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpwrk0\shpfblwtxt0\shpz24\shplid1036 
{\sp{\sn shapeType}{\sv 20}}{\sp{\sn fFlipH}{\sv 0}}{\sp{\sn fFlipV}{\sv 0}}{\sp{\sn fAutoTextMargin}{\sv 0}}{\sp{\sn fRotateText}{\sv 0}}{\sp{\sn fFitShapeToText}{\sv 0}} 
{\sp{\sn fFitTextToShape}{\sv 0}}{\sp{\sn shapePath}{\sv 4}}{\sp{\sn fFillOK}{\sv 0}}{\sp{\sn fFilled}{\sv 0}}{\sp{\sn lineWidth}{\sv 25400}}{\sp{\sn fArrowheadsOK}{\sv 1}} 
{\sp{\sn fLine}{\sv 1}}{\sp{\sn fHitTestLine}{\sv 1}}{\sp{\sn lineFillShape}{\sv 1}}{\sp{\sn fShadow}{\sv 0}}{\sp{\sn fshadowObscured}{\sv 0}}{\sp{\sn f3D}{\sv 0}}{\sp{\sn fc3DMetallic}{\sv 0}}{\sp{\sn fc3DUseExtrusionColor}{\sv 0}} 
{\sp{\sn fc3DLightFace}{\sv 1}}{\sp{\sn fc3DConstrainRotation}{\sv 1}}{\sp{\sn fc3DRotationCenterAuto}{\sv 0}}{\sp{\sn fc3DParallel}{\sv 1}}{\sp{\sn fc3DKeyHarsh}{\sv 1}}{\sp{\sn fc3DFillHarsh}{\sv 0}}{\sp{\sn fCalloutMinusX}{\sv 0}} 
{\sp{\sn fCalloutMinusY}{\sv 0}}{\sp{\sn fCalloutDropAuto}{\sv 0}}{\sp{\sn fCalloutLengthSpecified}{\sv 0}}}{\shprslt{\*\do\dobxcolumn\dobypara\dodhgt8216\dpline\dpptx0\dppty0\dpptx0\dppty432\dpx6768\dpy44\dpxsize0\dpysize432 
\dplinew40\dplinecor0\dplinecog0\dplinecob0}}}{\shp{\*\shpinst\shpleft5472\shptop44\shpright5472\shpbottom476\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpwrk0\shpfblwtxt0\shpz23\shplid1037 
{\sp{\sn shapeType}{\sv 20}}{\sp{\sn fFlipH}{\sv 0}}{\sp{\sn fFlipV}{\sv 0}}{\sp{\sn fAutoTextMargin}{\sv 0}}{\sp{\sn fRotateText}{\sv 0}}{\sp{\sn fFitShapeToText}{\sv 0}} 
{\sp{\sn fFitTextToShape}{\sv 0}}{\sp{\sn shapePath}{\sv 4}}{\sp{\sn fFillOK}{\sv 0}}{\sp{\sn fFilled}{\sv 0}}{\sp{\sn lineWidth}{\sv 25400}}{\sp{\sn fArrowheadsOK}{\sv 1}} 
{\sp{\sn fLine}{\sv 1}}{\sp{\sn fHitTestLine}{\sv 1}}{\sp{\sn lineFillShape}{\sv 1}}{\sp{\sn fShadow}{\sv 0}}{\sp{\sn fshadowObscured}{\sv 0}}{\sp{\sn f3D}{\sv 0}}{\sp{\sn fc3DMetallic}{\sv 0}}{\sp{\sn fc3DUseExtrusionColor}{\sv 0}} 
{\sp{\sn fc3DLightFace}{\sv 1}}{\sp{\sn fc3DConstrainRotation}{\sv 1}}{\sp{\sn fc3DRotationCenterAuto}{\sv 0}}{\sp{\sn fc3DParallel}{\sv 1}}{\sp{\sn fc3DKeyHarsh}{\sv 1}}{\sp{\sn fc3DFillHarsh}{\sv 0}}{\sp{\sn fCalloutMinusX}{\sv 0}} 
{\sp{\sn fCalloutMinusY}{\sv 0}}{\sp{\sn fCalloutDropAuto}{\sv 0}}{\sp{\sn fCalloutLengthSpecified}{\sv 0}}}{\shprslt{\*\do\dobxcolumn\dobypara\dodhgt8215\dpline\dpptx0\dppty0\dpptx0\dppty432\dpx5472\dpy44\dpxsize0\dpysize432 
\dplinew40\dplinecor0\dplinecog0\dplinecob0}}}{\shp{\*\shpinst\shpleft4320\shptop44\shpright4320\shpbottom476\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpwrk0\shpfblwtxt0\shpz22\shplid1038 
{\sp{\sn shapeType}{\sv 20}}{\sp{\sn fFlipH}{\sv 0}}{\sp{\sn fFlipV}{\sv 0}}{\sp{\sn fAutoTextMargin}{\sv 0}}{\sp{\sn fRotateText}{\sv 0}}{\sp{\sn fFitShapeToText}{\sv 0}} 
{\sp{\sn fFitTextToShape}{\sv 0}}{\sp{\sn shapePath}{\sv 4}}{\sp{\sn fFillOK}{\sv 0}}{\sp{\sn fFilled}{\sv 0}}{\sp{\sn lineWidth}{\sv 25400}}{\sp{\sn fArrowheadsOK}{\sv 1}} 
{\sp{\sn fLine}{\sv 1}}{\sp{\sn fHitTestLine}{\sv 1}}{\sp{\sn lineFillShape}{\sv 1}}{\sp{\sn fShadow}{\sv 0}}{\sp{\sn fshadowObscured}{\sv 0}}{\sp{\sn f3D}{\sv 0}}{\sp{\sn fc3DMetallic}{\sv 0}}{\sp{\sn fc3DUseExtrusionColor}{\sv 0}} 
{\sp{\sn fc3DLightFace}{\sv 1}}{\sp{\sn fc3DConstrainRotation}{\sv 1}}{\sp{\sn fc3DRotationCenterAuto}{\sv 0}}{\sp{\sn fc3DParallel}{\sv 1}}{\sp{\sn fc3DKeyHarsh}{\sv 1}}{\sp{\sn fc3DFillHarsh}{\sv 0}}{\sp{\sn fCalloutMinusX}{\sv 0}} 
{\sp{\sn fCalloutMinusY}{\sv 0}}{\sp{\sn fCalloutDropAuto}{\sv 0}}{\sp{\sn fCalloutLengthSpecified}{\sv 0}}}{\shprslt{\*\do\dobxcolumn\dobypara\dodhgt8214\dpline\dpptx0\dppty0\dpptx0\dppty432\dpx4320\dpy44\dpxsize0\dpysize432 
\dplinew40\dplinecor0\dplinecog0\dplinecob0}}}{\shp{\*\shpinst\shpleft3024\shptop44\shpright3024\shpbottom476\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpwrk0\shpfblwtxt0\shpz21\shplid1039 
{\sp{\sn shapeType}{\sv 20}}{\sp{\sn fFlipH}{\sv 0}}{\sp{\sn fFlipV}{\sv 0}}{\sp{\sn fAutoTextMargin}{\sv 0}}{\sp{\sn fRotateText}{\sv 0}}{\sp{\sn fFitShapeToText}{\sv 0}} 
{\sp{\sn fFitTextToShape}{\sv 0}}{\sp{\sn shapePath}{\sv 4}}{\sp{\sn fFillOK}{\sv 0}}{\sp{\sn fFilled}{\sv 0}}{\sp{\sn lineWidth}{\sv 25400}}{\sp{\sn fArrowheadsOK}{\sv 1}} 
{\sp{\sn fLine}{\sv 1}}{\sp{\sn fHitTestLine}{\sv 1}}{\sp{\sn lineFillShape}{\sv 1}}{\sp{\sn fShadow}{\sv 0}}{\sp{\sn fshadowObscured}{\sv 0}}{\sp{\sn f3D}{\sv 0}}{\sp{\sn fc3DMetallic}{\sv 0}}{\sp{\sn fc3DUseExtrusionColor}{\sv 0}} 
{\sp{\sn fc3DLightFace}{\sv 1}}{\sp{\sn fc3DConstrainRotation}{\sv 1}}{\sp{\sn fc3DRotationCenterAuto}{\sv 0}}{\sp{\sn fc3DParallel}{\sv 1}}{\sp{\sn fc3DKeyHarsh}{\sv 1}}{\sp{\sn fc3DFillHarsh}{\sv 0}}{\sp{\sn fCalloutMinusX}{\sv 0}} 
{\sp{\sn fCalloutMinusY}{\sv 0}}{\sp{\sn fCalloutDropAuto}{\sv 0}}{\sp{\sn fCalloutLengthSpecified}{\sv 0}}}{\shprslt{\*\do\dobxcolumn\dobypara\dodhgt8213\dpline\dpptx0\dppty0\dpptx0\dppty432\dpx3024\dpy44\dpxsize0\dpysize432 
\dplinew40\dplinecor0\dplinecog0\dplinecob0}}}{\shp{\*\shpinst\shpleft1728\shptop44\shpright1728\shpbottom476\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpwrk0\shpfblwtxt0\shpz20\shplid1040 
{\sp{\sn shapeType}{\sv 20}}{\sp{\sn fFlipH}{\sv 0}}{\sp{\sn fFlipV}{\sv 0}}{\sp{\sn fAutoTextMargin}{\sv 0}}{\sp{\sn fRotateText}{\sv 0}}{\sp{\sn fFitShapeToText}{\sv 0}} 
{\sp{\sn fFitTextToShape}{\sv 0}}{\sp{\sn shapePath}{\sv 4}}{\sp{\sn fFillOK}{\sv 0}}{\sp{\sn fFilled}{\sv 0}}{\sp{\sn lineWidth}{\sv 25400}}{\sp{\sn fArrowheadsOK}{\sv 1}} 
{\sp{\sn fLine}{\sv 1}}{\sp{\sn fHitTestLine}{\sv 1}}{\sp{\sn lineFillShape}{\sv 1}}{\sp{\sn fShadow}{\sv 0}}{\sp{\sn fshadowObscured}{\sv 0}}{\sp{\sn f3D}{\sv 0}}{\sp{\sn fc3DMetallic}{\sv 0}}{\sp{\sn fc3DUseExtrusionColor}{\sv 0}} 
{\sp{\sn fc3DLightFace}{\sv 1}}{\sp{\sn fc3DConstrainRotation}{\sv 1}}{\sp{\sn fc3DRotationCenterAuto}{\sv 0}}{\sp{\sn fc3DParallel}{\sv 1}}{\sp{\sn fc3DKeyHarsh}{\sv 1}}{\sp{\sn fc3DFillHarsh}{\sv 0}}{\sp{\sn fCalloutMinusX}{\sv 0}} 
{\sp{\sn fCalloutMinusY}{\sv 0}}{\sp{\sn fCalloutDropAuto}{\sv 0}}{\sp{\sn fCalloutLengthSpecified}{\sv 0}}}{\shprslt{\*\do\dobxcolumn\dobypara\dodhgt8212\dpline\dpptx0\dppty0\dpptx0\dppty432\dpx1728\dpy44\dpxsize0\dpysize432 
\dplinew40\dplinecor0\dplinecog0\dplinecob0}}}{\shp{\*\shpinst\shpleft720\shptop44\shpright720\shpbottom476\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpwrk0\shpfblwtxt0\shpz19\shplid1041 
{\sp{\sn shapeType}{\sv 20}}{\sp{\sn fFlipH}{\sv 0}}{\sp{\sn fFlipV}{\sv 0}}{\sp{\sn fAutoTextMargin}{\sv 0}}{\sp{\sn fRotateText}{\sv 0}}{\sp{\sn fFitShapeToText}{\sv 0}} 
{\sp{\sn fFitTextToShape}{\sv 0}}{\sp{\sn shapePath}{\sv 4}}{\sp{\sn fFillOK}{\sv 0}}{\sp{\sn fFilled}{\sv 0}}{\sp{\sn lineWidth}{\sv 25400}}{\sp{\sn fArrowheadsOK}{\sv 1}} 
{\sp{\sn fLine}{\sv 1}}{\sp{\sn fHitTestLine}{\sv 1}}{\sp{\sn lineFillShape}{\sv 1}}{\sp{\sn fShadow}{\sv 0}}{\sp{\sn fshadowObscured}{\sv 0}}{\sp{\sn f3D}{\sv 0}}{\sp{\sn fc3DMetallic}{\sv 0}}{\sp{\sn fc3DUseExtrusionColor}{\sv 0}} 
{\sp{\sn fc3DLightFace}{\sv 1}}{\sp{\sn fc3DConstrainRotation}{\sv 1}}{\sp{\sn fc3DRotationCenterAuto}{\sv 0}}{\sp{\sn fc3DParallel}{\sv 1}}{\sp{\sn fc3DKeyHarsh}{\sv 1}}{\sp{\sn fc3DFillHarsh}{\sv 0}}{\sp{\sn fCalloutMinusX}{\sv 0}} 
{\sp{\sn fCalloutMinusY}{\sv 0}}{\sp{\sn fCalloutDropAuto}{\sv 0}}{\sp{\sn fCalloutLengthSpecified}{\sv 0}}}{\shprslt{\*\do\dobxcolumn\dobypara\dodhgt8211\dpline\dpptx0\dppty0\dpptx0\dppty432\dpx720\dpy44\dpxsize0\dpysize432 
\dplinew40\dplinecor0\dplinecog0\dplinecob0}}}{\shp{\*\shpinst\shpleft-576\shptop44\shpright-576\shpbottom476\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpwrk0\shpfblwtxt0\shpz18\shplid1042 
{\sp{\sn shapeType}{\sv 20}}{\sp{\sn fFlipH}{\sv 0}}{\sp{\sn fFlipV}{\sv 0}}{\sp{\sn fAutoTextMargin}{\sv 0}}{\sp{\sn fRotateText}{\sv 0}}{\sp{\sn fFitShapeToText}{\sv 0}} 
{\sp{\sn fFitTextToShape}{\sv 0}}{\sp{\sn shapePath}{\sv 4}}{\sp{\sn fFillOK}{\sv 0}}{\sp{\sn fFilled}{\sv 0}}{\sp{\sn lineWidth}{\sv 25400}}{\sp{\sn fArrowheadsOK}{\sv 1}} 
{\sp{\sn fLine}{\sv 1}}{\sp{\sn fHitTestLine}{\sv 1}}{\sp{\sn lineFillShape}{\sv 1}}{\sp{\sn fShadow}{\sv 0}}{\sp{\sn fshadowObscured}{\sv 0}}{\sp{\sn f3D}{\sv 0}}{\sp{\sn fc3DMetallic}{\sv 0}}{\sp{\sn fc3DUseExtrusionColor}{\sv 0}} 
{\sp{\sn fc3DLightFace}{\sv 1}}{\sp{\sn fc3DConstrainRotation}{\sv 1}}{\sp{\sn fc3DRotationCenterAuto}{\sv 0}}{\sp{\sn fc3DParallel}{\sv 1}}{\sp{\sn fc3DKeyHarsh}{\sv 1}}{\sp{\sn fc3DFillHarsh}{\sv 0}}{\sp{\sn fCalloutMinusX}{\sv 0}} 
{\sp{\sn fCalloutMinusY}{\sv 0}}{\sp{\sn fCalloutDropAuto}{\sv 0}}{\sp{\sn fCalloutLengthSpecified}{\sv 0}}}{\shprslt{\*\do\dobxcolumn\dobypara\dodhgt8210\dpline\dpptx0\dppty0\dpptx0\dppty432\dpx-576\dpy44\dpxsize0\dpysize432 
\dplinew40\dplinecor0\dplinecog0\dplinecob0}}}}{ 
\par  
\par }{\lang1024 {\shp{\*\shpinst\shpleft8784\shptop16\shpright10080\shpbottom448\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpwrk0\shpfblwtxt0\shpz15\shplid1044{\sp{\sn shapeType}{\sv 2}}{\sp{\sn fFlipH}{\sv 0}}{\sp{\sn fFlipV}{\sv 0}} 
{\sp{\sn lTxid}{\sv 458752}}{\sp{\sn dxTextLeft}{\sv 63649}}{\sp{\sn dyTextTop}{\sv 31825}}{\sp{\sn dxTextRight}{\sv 63649}}{\sp{\sn dyTextBottom}{\sv 31825}}{\sp{\sn anchorText}{\sv 1}}{\sp{\sn hspNext}{\sv 1044}}{\sp{\sn fillColor}{\sv 14934203}} 
{\sp{\sn fFilled}{\sv 1}}{\sp{\sn fLine}{\sv 1}}{\sp{\sn wzName}{\sv \'5f\'73\'31\'30\'33\'35}}{\shptxt \pard\plain \qc\nowidctlpar\widctlpar\adjustright \fs20\cgrid {C_Triangle 
\par }}}{\shprslt{\*\do\dobxcolumn\dobypara\dodhgt8207\dptxbx{\dptxbxtext\pard\plain \qc\nowidctlpar\widctlpar\adjustright \fs20\cgrid {C_Triangle 
\par }}\dpx8784\dpy16\dpxsize1296\dpysize432\dpfillfgcr255\dpfillfgcg255\dpfillfgcb255\dpfillbgcr187\dpfillbgcg224\dpfillbgcb227\dpfillpat1\dplinew15\dplinecor0\dplinecog0\dplinecob0}}} 
{\shp{\*\shpinst\shpleft7488\shptop16\shpright8640\shpbottom448\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpwrk0\shpfblwtxt0\shpz14\shplid1045{\sp{\sn shapeType}{\sv 2}}{\sp{\sn fFlipH}{\sv 0}}{\sp{\sn fFlipV}{\sv 0}} 
{\sp{\sn lTxid}{\sv 524288}}{\sp{\sn dxTextLeft}{\sv 63649}}{\sp{\sn dyTextTop}{\sv 31825}}{\sp{\sn dxTextRight}{\sv 63649}}{\sp{\sn dyTextBottom}{\sv 31825}}{\sp{\sn anchorText}{\sv 1}}{\sp{\sn hspNext}{\sv 1045}}{\sp{\sn fillColor}{\sv 14934203}} 
{\sp{\sn fFilled}{\sv 1}}{\sp{\sn fLine}{\sv 1}}{\sp{\sn wzName}{\sv \'5f\'73\'31\'30\'33\'35}}{\shptxt \pard\plain \qc\nowidctlpar\widctlpar\adjustright \fs20\cgrid {C_Square 
\par }}}{\shprslt{\*\do\dobxcolumn\dobypara\dodhgt8206\dptxbx{\dptxbxtext\pard\plain \qc\nowidctlpar\widctlpar\adjustright \fs20\cgrid {C_Square 
\par }}\dpx7488\dpy16\dpxsize1152\dpysize432\dpfillfgcr255\dpfillfgcg255\dpfillfgcb255\dpfillbgcr187\dpfillbgcg224\dpfillbgcb227\dpfillpat1\dplinew15\dplinecor0\dplinecog0\dplinecob0}}} 
{\shp{\*\shpinst\shpleft6192\shptop16\shpright7344\shpbottom448\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpwrk0\shpfblwtxt0\shpz13\shplid1046{\sp{\sn shapeType}{\sv 2}}{\sp{\sn fFlipH}{\sv 0}}{\sp{\sn fFlipV}{\sv 0}} 
{\sp{\sn lTxid}{\sv 589824}}{\sp{\sn dxTextLeft}{\sv 63649}}{\sp{\sn dyTextTop}{\sv 31825}}{\sp{\sn dxTextRight}{\sv 63649}}{\sp{\sn dyTextBottom}{\sv 31825}}{\sp{\sn anchorText}{\sv 1}}{\sp{\sn hspNext}{\sv 1046}}{\sp{\sn fillColor}{\sv 14934203}} 
{\sp{\sn fFilled}{\sv 1}}{\sp{\sn fLine}{\sv 1}}{\sp{\sn wzName}{\sv \'5f\'73\'31\'30\'33\'35}}{\shptxt \pard\plain \qc\nowidctlpar\widctlpar\adjustright \fs20\cgrid {C_Sphere 
\par }}}{\shprslt{\*\do\dobxcolumn\dobypara\dodhgt8205\dptxbx{\dptxbxtext\pard\plain \qc\nowidctlpar\widctlpar\adjustright \fs20\cgrid {C_Sphere 
\par }}\dpx6192\dpy16\dpxsize1152\dpysize432\dpfillfgcr255\dpfillfgcg255\dpfillfgcb255\dpfillbgcr187\dpfillbgcg224\dpfillbgcb227\dpfillpat1\dplinew15\dplinecor0\dplinecog0\dplinecob0}}} 
{\shp{\*\shpinst\shpleft5040\shptop16\shpright6048\shpbottom448\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpwrk0\shpfblwtxt0\shpz12\shplid1047{\sp{\sn shapeType}{\sv 2}}{\sp{\sn fFlipH}{\sv 0}}{\sp{\sn fFlipV}{\sv 0}} 
{\sp{\sn lTxid}{\sv 655360}}{\sp{\sn dxTextLeft}{\sv 63649}}{\sp{\sn dyTextTop}{\sv 31825}}{\sp{\sn dxTextRight}{\sv 63649}}{\sp{\sn dyTextBottom}{\sv 31825}}{\sp{\sn anchorText}{\sv 1}}{\sp{\sn hspNext}{\sv 1047}}{\sp{\sn fillColor}{\sv 14934203}} 
{\sp{\sn fFilled}{\sv 1}}{\sp{\sn fLine}{\sv 1}}{\sp{\sn wzName}{\sv \'5f\'73\'31\'30\'33\'35}}{\shptxt \pard\plain \qc\nowidctlpar\widctlpar\adjustright \fs20\cgrid {C_MD2 
\par }}}{\shprslt{\*\do\dobxcolumn\dobypara\dodhgt8204\dptxbx{\dptxbxtext\pard\plain \qc\nowidctlpar\widctlpar\adjustright \fs20\cgrid {C_MD2 
\par }}\dpx5040\dpy16\dpxsize1008\dpysize432\dpfillfgcr255\dpfillfgcg255\dpfillfgcb255\dpfillbgcr187\dpfillbgcg224\dpfillbgcb227\dpfillpat1\dplinew15\dplinecor0\dplinecog0\dplinecob0}}} 
{\shp{\*\shpinst\shpleft3888\shptop16\shpright4896\shpbottom448\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpwrk0\shpfblwtxt0\shpz11\shplid1048{\sp{\sn shapeType}{\sv 2}}{\sp{\sn fFlipH}{\sv 0}}{\sp{\sn fFlipV}{\sv 0}} 
{\sp{\sn lTxid}{\sv 720896}}{\sp{\sn dxTextLeft}{\sv 63649}}{\sp{\sn dyTextTop}{\sv 31825}}{\sp{\sn dxTextRight}{\sv 63649}}{\sp{\sn dyTextBottom}{\sv 31825}}{\sp{\sn anchorText}{\sv 1}}{\sp{\sn hspNext}{\sv 1048}}{\sp{\sn fillColor}{\sv 14934203}} 
{\sp{\sn fFilled}{\sv 1}}{\sp{\sn fLine}{\sv 1}}{\sp{\sn wzName}{\sv \'5f\'73\'31\'30\'33\'35}}{\shptxt \pard\plain \qc\nowidctlpar\widctlpar\adjustright \fs20\cgrid {C_Line 
\par }}}{\shprslt{\*\do\dobxcolumn\dobypara\dodhgt8203\dptxbx{\dptxbxtext\pard\plain \qc\nowidctlpar\widctlpar\adjustright \fs20\cgrid {C_Line 
\par }}\dpx3888\dpy16\dpxsize1008\dpysize432\dpfillfgcr255\dpfillfgcg255\dpfillfgcb255\dpfillbgcr187\dpfillbgcg224\dpfillbgcb227\dpfillpat1\dplinew15\dplinecor0\dplinecog0\dplinecob0}}} 
{\shp{\*\shpinst\shpleft2448\shptop16\shpright3744\shpbottom448\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpwrk0\shpfblwtxt0\shpz10\shplid1049{\sp{\sn shapeType}{\sv 2}}{\sp{\sn fFlipH}{\sv 0}}{\sp{\sn fFlipV}{\sv 0}} 
{\sp{\sn lTxid}{\sv 786432}}{\sp{\sn dxTextLeft}{\sv 63649}}{\sp{\sn dyTextTop}{\sv 31825}}{\sp{\sn dxTextRight}{\sv 63649}}{\sp{\sn dyTextBottom}{\sv 31825}}{\sp{\sn anchorText}{\sv 1}}{\sp{\sn hspNext}{\sv 1049}}{\sp{\sn fillColor}{\sv 14934203}} 
{\sp{\sn fFilled}{\sv 1}}{\sp{\sn fLine}{\sv 1}}{\sp{\sn wzName}{\sv \'5f\'73\'31\'30\'33\'35}}{\shptxt \pard\plain \qc\nowidctlpar\widctlpar\adjustright \fs20\cgrid {C_Cylinder 
\par }}}{\shprslt{\*\do\dobxcolumn\dobypara\dodhgt8202\dptxbx{\dptxbxtext\pard\plain \qc\nowidctlpar\widctlpar\adjustright \fs20\cgrid {C_Cylinder 
\par }}\dpx2448\dpy16\dpxsize1296\dpysize432\dpfillfgcr255\dpfillfgcg255\dpfillfgcb255\dpfillbgcr187\dpfillbgcg224\dpfillbgcb227\dpfillpat1\dplinew15\dplinecor0\dplinecog0\dplinecob0}}} 
{\shp{\*\shpinst\shpleft1296\shptop16\shpright2304\shpbottom448\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpwrk0\shpfblwtxt0\shpz9\shplid1050{\sp{\sn shapeType}{\sv 2}}{\sp{\sn fFlipH}{\sv 0}}{\sp{\sn fFlipV}{\sv 0}} 
{\sp{\sn lTxid}{\sv 851968}}{\sp{\sn dxTextLeft}{\sv 63649}}{\sp{\sn dyTextTop}{\sv 31825}}{\sp{\sn dxTextRight}{\sv 63649}}{\sp{\sn dyTextBottom}{\sv 31825}}{\sp{\sn anchorText}{\sv 1}}{\sp{\sn hspNext}{\sv 1050}}{\sp{\sn fillColor}{\sv 14934203}} 
{\sp{\sn fFilled}{\sv 1}}{\sp{\sn fLine}{\sv 1}}{\sp{\sn wzName}{\sv \'5f\'73\'31\'30\'33\'35}}{\shptxt \pard\plain \qc\nowidctlpar\widctlpar\adjustright \fs20\cgrid {C_Cube 
\par }}}{\shprslt{\*\do\dobxcolumn\dobypara\dodhgt8201\dptxbx{\dptxbxtext\pard\plain \qc\nowidctlpar\widctlpar\adjustright \fs20\cgrid {C_Cube 
\par }}\dpx1296\dpy16\dpxsize1008\dpysize432\dpfillfgcr255\dpfillfgcg255\dpfillfgcb255\dpfillbgcr187\dpfillbgcg224\dpfillbgcb227\dpfillpat1\dplinew15\dplinecor0\dplinecog0\dplinecob0}}} 
{\shp{\*\shpinst\shpleft144\shptop16\shpright1152\shpbottom448\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpwrk0\shpfblwtxt0\shpz8\shplid1051{\sp{\sn shapeType}{\sv 2}}{\sp{\sn fFlipH}{\sv 0}}{\sp{\sn fFlipV}{\sv 0}} 
{\sp{\sn lTxid}{\sv 917504}}{\sp{\sn dxTextLeft}{\sv 63649}}{\sp{\sn dyTextTop}{\sv 31825}}{\sp{\sn dxTextRight}{\sv 63649}}{\sp{\sn dyTextBottom}{\sv 31825}}{\sp{\sn anchorText}{\sv 1}}{\sp{\sn hspNext}{\sv 1051}}{\sp{\sn fillColor}{\sv 14934203}} 
{\sp{\sn fFilled}{\sv 1}}{\sp{\sn fLine}{\sv 1}}{\sp{\sn wzName}{\sv \'5f\'73\'31\'30\'33\'35}}{\shptxt \pard\plain \qc\nowidctlpar\widctlpar\adjustright \fs20\cgrid {C_MyPrimitive 
\par }}}{\shprslt{\*\do\dobxcolumn\dobypara\dodhgt8200\dptxbx{\dptxbxtext\pard\plain \qc\nowidctlpar\widctlpar\adjustright \fs20\cgrid {C_MyPrimitive 
\par }}\dpx144\dpy16\dpxsize1008\dpysize432\dpfillfgcr255\dpfillfgcg255\dpfillfgcb255\dpfillbgcr187\dpfillbgcg224\dpfillbgcb227\dpfillpat1\dplinew15\dplinecor0\dplinecog0\dplinecob0}}} 
{\shp{\*\shpinst\shpleft-1008\shptop16\shpright0\shpbottom448\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpwrk0\shpfblwtxt0\shpz7\shplid1052{\sp{\sn shapeType}{\sv 2}}{\sp{\sn fFlipH}{\sv 0}}{\sp{\sn fFlipV}{\sv 0}} 
{\sp{\sn lTxid}{\sv 983040}}{\sp{\sn dxTextLeft}{\sv 63649}}{\sp{\sn dyTextTop}{\sv 31825}}{\sp{\sn dxTextRight}{\sv 63649}}{\sp{\sn dyTextBottom}{\sv 31825}}{\sp{\sn anchorText}{\sv 1}}{\sp{\sn hspNext}{\sv 1052}}{\sp{\sn fillColor}{\sv 14934203}} 
{\sp{\sn fFilled}{\sv 1}}{\sp{\sn fLine}{\sv 1}}{\sp{\sn wzName}{\sv \'5f\'73\'31\'30\'33\'35}}{\shptxt \pard\plain \qc\nowidctlpar\widctlpar\adjustright \fs20\cgrid {C_Box 
\par }}}{\shprslt{\*\do\dobxcolumn\dobypara\dodhgt8199\dptxbx{\dptxbxtext\pard\plain \qc\nowidctlpar\widctlpar\adjustright \fs20\cgrid {C_Box 
\par }}\dpx-1008\dpy16\dpxsize1008\dpysize432\dpfillfgcr255\dpfillfgcg255\dpfillfgcb255\dpfillbgcr187\dpfillbgcg224\dpfillbgcb227\dpfillpat1\dplinew15\dplinecor0\dplinecog0\dplinecob0}}}}{ 
\par \tab \tab \tab \tab \tab \tab \tab \tab  
\par }{\b\fs28  
\par }{\b\fs28\lang1024 {\shp{\*\shpinst\shpleft1296\shptop152\shpright3074\shpbottom872\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpwrk0\shpfblwtxt0\shpz29\shplid1074{\sp{\sn shapeType}{\sv 2}}{\sp{\sn fFlipH}{\sv 0}}{\sp{\sn fFlipV}{\sv 0}} 
{\sp{\sn lTxid}{\sv 1638400}}{\sp{\sn dxTextLeft}{\sv 63649}}{\sp{\sn dyTextTop}{\sv 31825}}{\sp{\sn dxTextRight}{\sv 63649}}{\sp{\sn dyTextBottom}{\sv 31825}}{\sp{\sn anchorText}{\sv 1}}{\sp{\sn hspNext}{\sv 1074}}{\sp{\sn fillColor}{\sv 14934203}} 
{\sp{\sn fFilled}{\sv 1}}{\sp{\sn fLine}{\sv 1}}{\sp{\sn wzName}{\sv \'5f\'73\'31\'30\'33\'35}}{\shptxt \pard\plain \qc\nowidctlpar\widctlpar\adjustright \fs20\cgrid {C_XMesh 
\par }}}{\shprslt{\*\do\dobxcolumn\dobypara\dodhgt8221\dptxbx{\dptxbxtext\pard\plain \qc\nowidctlpar\widctlpar\adjustright \fs20\cgrid {C_XMesh 
\par }}\dpx1296\dpy152\dpxsize1778\dpysize720\dpfillfgcr255\dpfillfgcg255\dpfillfgcb255\dpfillbgcr187\dpfillbgcg224\dpfillbgcb227\dpfillpat1\dplinew15\dplinecor0\dplinecog0\dplinecob0}}} 
{\shp{\*\shpinst\shpleft-864\shptop152\shpright914\shpbottom872\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpwrk0\shpfblwtxt0\shpz28\shplid1073{\sp{\sn shapeType}{\sv 2}}{\sp{\sn fFlipH}{\sv 0}}{\sp{\sn fFlipV}{\sv 0}} 
{\sp{\sn lTxid}{\sv 1572864}}{\sp{\sn dxTextLeft}{\sv 63649}}{\sp{\sn dyTextTop}{\sv 31825}}{\sp{\sn dxTextRight}{\sv 63649}}{\sp{\sn dyTextBottom}{\sv 31825}}{\sp{\sn anchorText}{\sv 1}}{\sp{\sn hspNext}{\sv 1073}}{\sp{\sn fillColor}{\sv 14934203}} 
{\sp{\sn fFilled}{\sv 1}}{\sp{\sn fLine}{\sv 1}}{\sp{\sn wzName}{\sv \'5f\'73\'31\'30\'33\'35}}{\shptxt \pard\plain \qc\nowidctlpar\widctlpar\adjustright \fs20\cgrid {C_Landscape 
\par }}}{\shprslt{\*\do\dobxcolumn\dobypara\dodhgt8220\dptxbx{\dptxbxtext\pard\plain \qc\nowidctlpar\widctlpar\adjustright \fs20\cgrid {C_Landscape 
\par }}\dpx-864\dpy152\dpxsize1778\dpysize720\dpfillfgcr255\dpfillfgcg255\dpfillfgcb255\dpfillbgcr187\dpfillbgcg224\dpfillbgcb227\dpfillpat1\dplinew15\dplinecor0\dplinecog0\dplinecob0}}}}{\b\fs28  
\par  
\par  
\par C_Viewport}{\fs24 : viewport.cpp, viewport.h}{\fs28  
\par }\pard \fi720\nowidctlpar\widctlpar\adjustright {\fs24 This class deals with the viewport of 3D gam 
e. It contains camera and fog modules. The camera is used to specify which part of the 3D scene will get displayed. Also it manipulates the Frustum viewing volume, which can be used to check which 3D objects are in the current camera view before rendering 
. This can enhance the speed of 3D rendering. Fog effect is also specified in C_Viewport, there are several helper functions to make it easy to use fog in your game which will make the scene looks more realistic. 
\par  
\par }\pard \nowidctlpar\widctlpar\adjustright {\b\fs28 C_Light}{\fs24 : light.cpp, light.h}{\b\fs28  
\par }\pard\plain \s15\fi720\nowidctlpar\widctlpar\adjustright \cgrid {This class deal 
s with dynamic light in 3D game. You can specify the type, position, color, intensity, and other properties of light using C_Light. Then you can turn on and off lights as needed in your game. 
\par }\pard\plain \nowidctlpar\widctlpar\adjustright \fs20\cgrid {\fs24  
\par }{\b\fs28 C_GameObject3D}{\fs24 : gameobject3d.cpp, gameobject3d.h}{\b\fs28  
\par }\pard \fi720\nowidctlpar\widctlpar\adjustright {\fs24 This class is  
an analogy of C_GameObject2D used in 2D game programming. You can use this class to keep 3D objects properties such as position, size, and rotation as well as specifying how it interacts with other objects, how it changes with time, how it responses to in 
put, and how it will be displayed. 
\par }\pard \nowidctlpar\widctlpar\adjustright {\b\fs28  
\par C_Primitive}{\fs24 : primitive.cpp, primitive.h}{\b\fs28  
\par }\pard \fi720\nowidctlpar\widctlpar\adjustright {\fs24 This class is an analogy of C_Sprite used in 2D game programming. However, being 3D, it requires far more information. It deals with shape of the primitive, material properties, tex 
ture, and how it can be rendered. C_Primitive is a base class for many other primitive classes such as C_Sphere, that is used to render sphere and C_MD2 that is used to render 3D models from a popular 3D model file format, .md2 
\par }\pard \nowidctlpar\widctlpar\adjustright {\fs24  
\par }{\b\fs28 C_BoundingBox}{\fs24 : boundingbox.cpp, boundingbox.h 
\par \tab This class helps in creating the bounding box for 3D primitives, so that we can check for collision between objects. Also it serves as a tools for checking whether an object is in the Frustum viewing volume or not before rendering.  
\par  
\par  
\par }{\b\fs28 C_Xmesh}{\fs24 : xmesh.cpp, xmesh.h 
\par }\pard\plain \s15\fi720\nowidctlpar\widctlpar\adjustright \cgrid {This class helps you load the .x models, which can be exported from many famous 3D programs. It will load the components of .x model and keep them in several primitives. 
\par }\pard\plain \nowidctlpar\widctlpar\adjustright \fs20\cgrid {\fs24  
\par  
\par }\pard\plain \s2\keepn\nowidctlpar\widctlpar\outlinelevel1\adjustright \b\fs32\cgrid {Structure of C_GameState for 3D game in the Engine Engine 
\par }\pard\plain \s1\keepn\nowidctlpar\widctlpar\outlinelevel0\adjustright \cgrid {\b\fs28 Basic C_GameState 
\par }{\lang1024 {\shpgrp{\*\shpinst\shpleft0\shptop606\shpright8928\shpbottom11738\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpwrk0\shpfblwtxt0\shpz27\shplid1053{\sp{\sn groupLeft}{\sv 1440}}{\sp{\sn groupTop}{\sv 2016}}{\sp{\sn groupRight}{\sv 10368}} 
{\sp{\sn groupBottom}{\sv 13148}}{\sp{\sn fFlipH}{\sv 0}}{\sp{\sn fFlipV}{\sv 0}}{\shp{\*\shpinst\shplid1054{\sp{\sn relLeft}{\sv 1728}}{\sp{\sn relTop}{\sv 2448}}{\sp{\sn relRight}{\sv 9072}} 
{\sp{\sn relBottom}{\sv 3500}}{\sp{\sn fRelFlipH}{\sv 0}}{\sp{\sn fRelFlipV}{\sv 0}}{\sp{\sn shapeType}{\sv 2}}{\sp{\sn lTxid}{\sv 1048576}}{\sp{\sn dxTextLeft}{\sv 63649}} 
{\sp{\sn dyTextTop}{\sv 31825}}{\sp{\sn dxTextRight}{\sv 63649}}{\sp{\sn dyTextBottom}{\sv 31825}}{\sp{\sn anchorText}{\sv 1}}{\sp{\sn hspNext}{\sv 1054}}{\sp{\sn fillColor}{\sv 14934203}} 
{\sp{\sn fFilled}{\sv 1}}{\sp{\sn fLine}{\sv 1}}{\sp{\sn wzName}{\sv \'5f\'73\'31\'30\'33\'35}}{\sp{\sn lidRegroup}{\sv 2}}{\shptxt \pard\plain \qc\nowidctlpar\widctlpar\adjustright \fs20\cgrid {Constructor}{\fs24  
\par }{Allocate and initialize Viewport, Light, Game objects, Primitives}{\fs24  
\par }\pard \fi720\li720\nowidctlpar\widctlpar\adjustright {\fs24   Tell gp_View to clear the screen and Z-Buffer 
\par }\pard \qc\nowidctlpar\widctlpar\adjustright {\fs24  
\par }\pard \nowidctlpar\widctlpar\adjustright {\fs24 etc.. 
\par }}}}{\shp{\*\shpinst\shplid1055{\sp{\sn relLeft}{\sv 3312}}{\sp{\sn relTop}{\sv 3968}}{\sp{\sn relRight}{\sv 7488}}{\sp{\sn relBottom}{\sv 4976}}{\sp{\sn fRelFlipH}{\sv 0}}{\sp{\sn fRelFlipV}{\sv 0}}{\sp{\sn shapeType}{\sv 2}}{\sp{\sn lTxid}{\sv 1114112}} 
{\sp{\sn dxTextLeft}{\sv 63649}}{\sp{\sn dyTextTop}{\sv 31825}}{\sp{\sn dxTextRight}{\sv 63649}}{\sp{\sn dyTextBottom}{\sv 31825}}{\sp{\sn anchorText}{\sv 1}}{\sp{\sn hspNext}{\sv 1055}} 
{\sp{\sn fillColor}{\sv 14934203}}{\sp{\sn fFilled}{\sv 1}}{\sp{\sn fLine}{\sv 1}}{\sp{\sn wzName}{\sv \'5f\'73\'31\'30\'33\'35}}{\sp{\sn lidRegroup}{\sv 2}}{\shptxt \pard\plain \qc\nowidctlpar\widctlpar\adjustright \fs20\cgrid {Input}{\fs24  
\par }\pard \nowidctlpar\widctlpar\adjustright {\fs24 Call Input functions of Game objects. 
\par Deal with input that effect the game. state 
\par }}}}{\shp{\*\shpinst\shplid1056{\sp{\sn relLeft}{\sv 1440}}{\sp{\sn relTop}{\sv 5408}}{\sp{\sn relRight}{\sv 9072}}{\sp{\sn relBottom}{\sv 6560}}{\sp{\sn fRelFlipH}{\sv 0}}{\sp{\sn fRelFlipV}{\sv 0}}{\sp{\sn shapeType}{\sv 2}}{\sp{\sn lTxid}{\sv 1179648}} 
{\sp{\sn dxTextLeft}{\sv 63649}}{\sp{\sn dyTextTop}{\sv 31825}}{\sp{\sn dxTextRight}{\sv 63649}}{\sp{\sn dyTextBottom}{\sv 31825}}{\sp{\sn anchorText}{\sv 1}}{\sp{\sn hspNext}{\sv 1056}} 
{\sp{\sn fillColor}{\sv 14934203}}{\sp{\sn fFilled}{\sv 1}}{\sp{\sn fLine}{\sv 1}}{\sp{\sn wzName}{\sv \'5f\'73\'31\'30\'33\'35}}{\sp{\sn lidRegroup}{\sv 2}}{\shptxt \pard\plain \qc\nowidctlpar\widctlpar\adjustright \fs20\cgrid {Update}{\fs24  
\par }\pard \nowidctlpar\widctlpar\adjustright {\fs24 Call Update functions of Viewport, Light, Game Objects, and Primitives. 
\par Enforce the rule of the game. 
\par  
\par }}}}{\shp{\*\shpinst\shplid1057{\sp{\sn relLeft}{\sv 2160}}{\sp{\sn relTop}{\sv 6992}}{\sp{\sn relRight}{\sv 8064}}{\sp{\sn relBottom}{\sv 8000}}{\sp{\sn fRelFlipH}{\sv 0}}{\sp{\sn fRelFlipV}{\sv 0}}{\sp{\sn shapeType}{\sv 2}}{\sp{\sn lTxid}{\sv 1245184}} 
{\sp{\sn dxTextLeft}{\sv 63649}}{\sp{\sn dyTextTop}{\sv 31825}}{\sp{\sn dxTextRight}{\sv 63649}}{\sp{\sn dyTextBottom}{\sv 31825}}{\sp{\sn anchorText}{\sv 1}}{\sp{\sn hspNext}{\sv 1057}} 
{\sp{\sn fillColor}{\sv 14934203}}{\sp{\sn fFilled}{\sv 1}}{\sp{\sn fLine}{\sv 1}}{\sp{\sn wzName}{\sv \'5f\'73\'31\'30\'33\'35}}{\sp{\sn lidRegroup}{\sv 2}}{\shptxt \pard\plain \qc\nowidctlpar\widctlpar\adjustright \fs20\cgrid {RenderPre2D}{\fs24  
\par }\pard \nowidctlpar\widctlpar\adjustright {\fs24 Render 2D objects that are on the back of 3D objects. An example would be the background 
\par }}}}{\shp{\*\shpinst\shplid1058{\sp{\sn relLeft}{\sv 2448}}{\sp{\sn relTop}{\sv 8576}}{\sp{\sn relRight}{\sv 7920}}{\sp{\sn relBottom}{\sv 9584}}{\sp{\sn fRelFlipH}{\sv 0}}{\sp{\sn fRelFlipV}{\sv 0}}{\sp{\sn shapeType}{\sv 2}}{\sp{\sn lTxid}{\sv 1310720}} 
{\sp{\sn dxTextLeft}{\sv 63649}}{\sp{\sn dyTextTop}{\sv 31825}}{\sp{\sn dxTextRight}{\sv 63649}}{\sp{\sn dyTextBottom}{\sv 31825}}{\sp{\sn anchorText}{\sv 1}}{\sp{\sn hspNext}{\sv 1058}} 
{\sp{\sn fillColor}{\sv 14934203}}{\sp{\sn fFilled}{\sv 1}}{\sp{\sn fLine}{\sv 1}}{\sp{\sn wzName}{\sv \'5f\'73\'31\'30\'33\'35}}{\sp{\sn lidRegroup}{\sv 2}}{\shptxt \pard\plain \qc\nowidctlpar\widctlpar\adjustright \fs20\cgrid {Render3D}{\fs24  
\par }\pard \nowidctlpar\widctlpar\adjustright {\fs24 Render 3D objects by calling Render3D functions of C_GameObject3D or C_Primitive(in some cases) 
\par }}}}{\shp{\*\shpinst\shplid1059{\sp{\sn relLeft}{\sv 2592}}{\sp{\sn relTop}{\sv 10160}}{\sp{\sn relRight}{\sv 7776}}{\sp{\sn relBottom}{\sv 11168}}{\sp{\sn fRelFlipH}{\sv 0}} 
{\sp{\sn fRelFlipV}{\sv 0}}{\sp{\sn shapeType}{\sv 2}}{\sp{\sn lTxid}{\sv 1376256}}{\sp{\sn dxTextLeft}{\sv 63649}}{\sp{\sn dyTextTop}{\sv 31825}}{\sp{\sn dxTextRight}{\sv 63649}} 
{\sp{\sn dyTextBottom}{\sv 31825}}{\sp{\sn anchorText}{\sv 1}}{\sp{\sn hspNext}{\sv 1059}}{\sp{\sn fillColor}{\sv 14934203}}{\sp{\sn fFilled}{\sv 1}}{\sp{\sn fLine}{\sv 1}} 
{\sp{\sn wzName}{\sv \'5f\'73\'31\'30\'33\'35}}{\sp{\sn lidRegroup}{\sv 2}}{\shptxt \pard\plain \qc\nowidctlpar\widctlpar\adjustright \fs20\cgrid {Render2D}{\fs24  
\par }\pard \nowidctlpar\widctlpar\adjustright {\fs24 Render 2D objects that are in front of 3D objects 
\par }}}}{\shp{\*\shpinst\shplid1060{\sp{\sn relLeft}{\sv 5184}}{\sp{\sn relTop}{\sv 3536}}{\sp{\sn relRight}{\sv 5184}}{\sp{\sn relBottom}{\sv 3968}}{\sp{\sn fRelFlipH}{\sv 0}}{\sp{\sn fRelFlipV}{\sv 0}}{\sp{\sn shapeType}{\sv 20}}{\sp{\sn shapePath}{\sv 4}} 
{\sp{\sn fFillOK}{\sv 0}}{\sp{\sn fFilled}{\sv 0}}{\sp{\sn lineWidth}{\sv 38100}}{\sp{\sn lineEndArrowhead}{\sv 1}}{\sp{\sn fArrowheadsOK}{\sv 1}}{\sp{\sn lidRegroup}{\sv 2}}}} 
{\shp{\*\shpinst\shplid1061{\sp{\sn relLeft}{\sv 5184}}{\sp{\sn relTop}{\sv 4976}}{\sp{\sn relRight}{\sv 5184}}{\sp{\sn relBottom}{\sv 5408}}{\sp{\sn fRelFlipH}{\sv 0}} 
{\sp{\sn fRelFlipV}{\sv 0}}{\sp{\sn shapeType}{\sv 20}}{\sp{\sn fAutoTextMargin}{\sv 0}}{\sp{\sn fRotateText}{\sv 0}}{\sp{\sn fFitShapeToText}{\sv 0}}{\sp{\sn fFitTextToShape}{\sv 0}} 
{\sp{\sn shapePath}{\sv 4}}{\sp{\sn fFillOK}{\sv 0}}{\sp{\sn fFilled}{\sv 0}}{\sp{\sn lineWidth}{\sv 38100}}{\sp{\sn lineEndArrowhead}{\sv 1}}{\sp{\sn fArrowheadsOK}{\sv 1}}{\sp{\sn fLine}{\sv 1}}{\sp{\sn fHitTestLine}{\sv 1}} 
{\sp{\sn lineFillShape}{\sv 1}}{\sp{\sn fShadow}{\sv 0}}{\sp{\sn fshadowObscured}{\sv 0}}{\sp{\sn f3D}{\sv 0}}{\sp{\sn fc3DMetallic}{\sv 0}}{\sp{\sn fc3DUseExtrusionColor}{\sv 0}}{\sp{\sn fc3DLightFace}{\sv 1}}{\sp{\sn fc3DConstrainRotation}{\sv 1}} 
{\sp{\sn fc3DRotationCenterAuto}{\sv 0}}{\sp{\sn fc3DParallel}{\sv 1}}{\sp{\sn fc3DKeyHarsh}{\sv 1}}{\sp{\sn fc3DFillHarsh}{\sv 0}}{\sp{\sn fCalloutMinusX}{\sv 0}}{\sp{\sn fCalloutMinusY}{\sv 0}}{\sp{\sn fCalloutDropAuto}{\sv 0}} 
{\sp{\sn fCalloutLengthSpecified}{\sv 0}}{\sp{\sn lidRegroup}{\sv 2}}}}{\shp{\*\shpinst\shplid1062{\sp{\sn relLeft}{\sv 5184}}{\sp{\sn relTop}{\sv 6560}}{\sp{\sn relRight}{\sv 5184}}{\sp{\sn relBottom}{\sv 6992}}{\sp{\sn fRelFlipH}{\sv 0}} 
{\sp{\sn fRelFlipV}{\sv 0}}{\sp{\sn shapeType}{\sv 20}}{\sp{\sn fAutoTextMargin}{\sv 0}}{\sp{\sn fRotateText}{\sv 0}}{\sp{\sn fFitShapeToText}{\sv 0}}{\sp{\sn fFitTextToShape}{\sv 0}} 
{\sp{\sn shapePath}{\sv 4}}{\sp{\sn fFillOK}{\sv 0}}{\sp{\sn fFilled}{\sv 0}}{\sp{\sn lineWidth}{\sv 38100}}{\sp{\sn lineEndArrowhead}{\sv 1}}{\sp{\sn fArrowheadsOK}{\sv 1}}{\sp{\sn fLine}{\sv 1}}{\sp{\sn fHitTestLine}{\sv 1}} 
{\sp{\sn lineFillShape}{\sv 1}}{\sp{\sn fShadow}{\sv 0}}{\sp{\sn fshadowObscured}{\sv 0}}{\sp{\sn f3D}{\sv 0}}{\sp{\sn fc3DMetallic}{\sv 0}}{\sp{\sn fc3DUseExtrusionColor}{\sv 0}}{\sp{\sn fc3DLightFace}{\sv 1}}{\sp{\sn fc3DConstrainRotation}{\sv 1}} 
{\sp{\sn fc3DRotationCenterAuto}{\sv 0}}{\sp{\sn fc3DParallel}{\sv 1}}{\sp{\sn fc3DKeyHarsh}{\sv 1}}{\sp{\sn fc3DFillHarsh}{\sv 0}}{\sp{\sn fCalloutMinusX}{\sv 0}}{\sp{\sn fCalloutMinusY}{\sv 0}}{\sp{\sn fCalloutDropAuto}{\sv 0}} 
{\sp{\sn fCalloutLengthSpecified}{\sv 0}}{\sp{\sn lidRegroup}{\sv 2}}}}{\shp{\*\shpinst\shplid1063{\sp{\sn relLeft}{\sv 5184}}{\sp{\sn relTop}{\sv 8000}}{\sp{\sn relRight}{\sv 5184}}{\sp{\sn relBottom}{\sv 8576}}{\sp{\sn fRelFlipH}{\sv 0}} 
{\sp{\sn fRelFlipV}{\sv 0}}{\sp{\sn shapeType}{\sv 20}}{\sp{\sn fAutoTextMargin}{\sv 0}}{\sp{\sn fRotateText}{\sv 0}}{\sp{\sn fFitShapeToText}{\sv 0}}{\sp{\sn fFitTextToShape}{\sv 0}} 
{\sp{\sn shapePath}{\sv 4}}{\sp{\sn fFillOK}{\sv 0}}{\sp{\sn fFilled}{\sv 0}}{\sp{\sn lineWidth}{\sv 38100}}{\sp{\sn lineEndArrowhead}{\sv 1}}{\sp{\sn fArrowheadsOK}{\sv 1}}{\sp{\sn fLine}{\sv 1}}{\sp{\sn fHitTestLine}{\sv 1}} 
{\sp{\sn lineFillShape}{\sv 1}}{\sp{\sn fShadow}{\sv 0}}{\sp{\sn fshadowObscured}{\sv 0}}{\sp{\sn f3D}{\sv 0}}{\sp{\sn fc3DMetallic}{\sv 0}}{\sp{\sn fc3DUseExtrusionColor}{\sv 0}}{\sp{\sn fc3DLightFace}{\sv 1}}{\sp{\sn fc3DConstrainRotation}{\sv 1}} 
{\sp{\sn fc3DRotationCenterAuto}{\sv 0}}{\sp{\sn fc3DParallel}{\sv 1}}{\sp{\sn fc3DKeyHarsh}{\sv 1}}{\sp{\sn fc3DFillHarsh}{\sv 0}}{\sp{\sn fCalloutMinusX}{\sv 0}}{\sp{\sn fCalloutMinusY}{\sv 0}}{\sp{\sn fCalloutDropAuto}{\sv 0}} 
{\sp{\sn fCalloutLengthSpecified}{\sv 0}}{\sp{\sn lidRegroup}{\sv 2}}}}{\shp{\*\shpinst\shplid1064{\sp{\sn relLeft}{\sv 5184}}{\sp{\sn relTop}{\sv 9584}}{\sp{\sn relRight}{\sv 5184}}{\sp{\sn relBottom}{\sv 10160}}{\sp{\sn fRelFlipH}{\sv 0}} 
{\sp{\sn fRelFlipV}{\sv 0}}{\sp{\sn shapeType}{\sv 20}}{\sp{\sn fAutoTextMargin}{\sv 0}}{\sp{\sn fRotateText}{\sv 0}}{\sp{\sn fFitShapeToText}{\sv 0}}{\sp{\sn fFitTextToShape}{\sv 0}} 
{\sp{\sn shapePath}{\sv 4}}{\sp{\sn fFillOK}{\sv 0}}{\sp{\sn fFilled}{\sv 0}}{\sp{\sn lineWidth}{\sv 38100}}{\sp{\sn lineEndArrowhead}{\sv 1}}{\sp{\sn fArrowheadsOK}{\sv 1}}{\sp{\sn fLine}{\sv 1}}{\sp{\sn fHitTestLine}{\sv 1}} 
{\sp{\sn lineFillShape}{\sv 1}}{\sp{\sn fShadow}{\sv 0}}{\sp{\sn fshadowObscured}{\sv 0}}{\sp{\sn f3D}{\sv 0}}{\sp{\sn fc3DMetallic}{\sv 0}}{\sp{\sn fc3DUseExtrusionColor}{\sv 0}}{\sp{\sn fc3DLightFace}{\sv 1}}{\sp{\sn fc3DConstrainRotation}{\sv 1}} 
{\sp{\sn fc3DRotationCenterAuto}{\sv 0}}{\sp{\sn fc3DParallel}{\sv 1}}{\sp{\sn fc3DKeyHarsh}{\sv 1}}{\sp{\sn fc3DFillHarsh}{\sv 0}}{\sp{\sn fCalloutMinusX}{\sv 0}}{\sp{\sn fCalloutMinusY}{\sv 0}}{\sp{\sn fCalloutDropAuto}{\sv 0}} 
{\sp{\sn fCalloutLengthSpecified}{\sv 0}}{\sp{\sn lidRegroup}{\sv 2}}}}{\shp{\*\shpinst\shplid1065{\sp{\sn relLeft}{\sv 5040}}{\sp{\sn relTop}{\sv 11168}}{\sp{\sn relRight}{\sv 8352}}{\sp{\sn relBottom}{\sv 11744}}{\sp{\sn fRelFlipH}{\sv 0}} 
{\sp{\sn fRelFlipV}{\sv 0}}{\sp{\sn shapeType}{\sv 20}}{\sp{\sn fAutoTextMargin}{\sv 0}}{\sp{\sn fRotateText}{\sv 0}}{\sp{\sn fFitShapeToText}{\sv 0}}{\sp{\sn fFitTextToShape}{\sv 0}} 
{\sp{\sn shapePath}{\sv 4}}{\sp{\sn fFillOK}{\sv 0}}{\sp{\sn fFilled}{\sv 0}}{\sp{\sn lineWidth}{\sv 38100}}{\sp{\sn fArrowheadsOK}{\sv 1}}{\sp{\sn fLine}{\sv 1}}{\sp{\sn fHitTestLine}{\sv 1}}{\sp{\sn lineFillShape}{\sv 1}}{\sp{\sn fShadow}{\sv 0}} 
{\sp{\sn fshadowObscured}{\sv 0}}{\sp{\sn f3D}{\sv 0}}{\sp{\sn fc3DMetallic}{\sv 0}}{\sp{\sn fc3DUseExtrusionColor}{\sv 0}}{\sp{\sn fc3DLightFace}{\sv 1}}{\sp{\sn fc3DConstrainRotation}{\sv 1}}{\sp{\sn fc3DRotationCenterAuto}{\sv 0}} 
{\sp{\sn fc3DParallel}{\sv 1}}{\sp{\sn fc3DKeyHarsh}{\sv 1}}{\sp{\sn fc3DFillHarsh}{\sv 0}}{\sp{\sn fCalloutMinusX}{\sv 0}}{\sp{\sn fCalloutMinusY}{\sv 0}}{\sp{\sn fCalloutDropAuto}{\sv 0}} 
{\sp{\sn fCalloutLengthSpecified}{\sv 0}}{\sp{\sn lidRegroup}{\sv 2}}}}{\shp{\*\shpinst\shplid1066{\sp{\sn relLeft}{\sv 8352}}{\sp{\sn relTop}{\sv 9008}}{\sp{\sn relRight}{\sv 10368}}{\sp{\sn relBottom}{\sv 11744}}{\sp{\sn fRelFlipH}{\sv 0}} 
{\sp{\sn fRelFlipV}{\sv 1}}{\sp{\sn shapeType}{\sv 20}}{\sp{\sn fAutoTextMargin}{\sv 0}}{\sp{\sn fRotateText}{\sv 0}}{\sp{\sn fFitShapeToText}{\sv 0}}{\sp{\sn fFitTextToShape}{\sv 0}} 
{\sp{\sn shapePath}{\sv 4}}{\sp{\sn fFillOK}{\sv 0}}{\sp{\sn fFilled}{\sv 0}}{\sp{\sn lineWidth}{\sv 38100}}{\sp{\sn fArrowheadsOK}{\sv 1}}{\sp{\sn fLine}{\sv 1}}{\sp{\sn fHitTestLine}{\sv 1}}{\sp{\sn lineFillShape}{\sv 1}}{\sp{\sn fShadow}{\sv 0}} 
{\sp{\sn fshadowObscured}{\sv 0}}{\sp{\sn f3D}{\sv 0}}{\sp{\sn fc3DMetallic}{\sv 0}}{\sp{\sn fc3DUseExtrusionColor}{\sv 0}}{\sp{\sn fc3DLightFace}{\sv 1}}{\sp{\sn fc3DConstrainRotation}{\sv 1}}{\sp{\sn fc3DRotationCenterAuto}{\sv 0}} 
{\sp{\sn fc3DParallel}{\sv 1}}{\sp{\sn fc3DKeyHarsh}{\sv 1}}{\sp{\sn fc3DFillHarsh}{\sv 0}}{\sp{\sn fCalloutMinusX}{\sv 0}}{\sp{\sn fCalloutMinusY}{\sv 0}}{\sp{\sn fCalloutDropAuto}{\sv 0}} 
{\sp{\sn fCalloutLengthSpecified}{\sv 0}}{\sp{\sn lidRegroup}{\sv 2}}}}{\shp{\*\shpinst\shplid1067{\sp{\sn relLeft}{\sv 10368}}{\sp{\sn relTop}{\sv 5696}}{\sp{\sn relRight}{\sv 10368}}{\sp{\sn relBottom}{\sv 9008}}{\sp{\sn fRelFlipH}{\sv 0}} 
{\sp{\sn fRelFlipV}{\sv 1}}{\sp{\sn shapeType}{\sv 20}}{\sp{\sn fAutoTextMargin}{\sv 0}}{\sp{\sn fRotateText}{\sv 0}}{\sp{\sn fFitShapeToText}{\sv 0}}{\sp{\sn fFitTextToShape}{\sv 0}} 
{\sp{\sn shapePath}{\sv 4}}{\sp{\sn fFillOK}{\sv 0}}{\sp{\sn fFilled}{\sv 0}}{\sp{\sn lineWidth}{\sv 38100}}{\sp{\sn fArrowheadsOK}{\sv 1}}{\sp{\sn fLine}{\sv 1}}{\sp{\sn fHitTestLine}{\sv 1}}{\sp{\sn lineFillShape}{\sv 1}}{\sp{\sn fShadow}{\sv 0}} 
{\sp{\sn fshadowObscured}{\sv 0}}{\sp{\sn f3D}{\sv 0}}{\sp{\sn fc3DMetallic}{\sv 0}}{\sp{\sn fc3DUseExtrusionColor}{\sv 0}}{\sp{\sn fc3DLightFace}{\sv 1}}{\sp{\sn fc3DConstrainRotation}{\sv 1}}{\sp{\sn fc3DRotationCenterAuto}{\sv 0}} 
{\sp{\sn fc3DParallel}{\sv 1}}{\sp{\sn fc3DKeyHarsh}{\sv 1}}{\sp{\sn fc3DFillHarsh}{\sv 0}}{\sp{\sn fCalloutMinusX}{\sv 0}}{\sp{\sn fCalloutMinusY}{\sv 0}}{\sp{\sn fCalloutDropAuto}{\sv 0}} 
{\sp{\sn fCalloutLengthSpecified}{\sv 0}}{\sp{\sn lidRegroup}{\sv 2}}}}{\shp{\*\shpinst\shplid1068{\sp{\sn relLeft}{\sv 7488}}{\sp{\sn relTop}{\sv 4400}}{\sp{\sn relRight}{\sv 10368}}{\sp{\sn relBottom}{\sv 5696}}{\sp{\sn fRelFlipH}{\sv 1}} 
{\sp{\sn fRelFlipV}{\sv 1}}{\sp{\sn shapeType}{\sv 20}}{\sp{\sn fAutoTextMargin}{\sv 0}}{\sp{\sn fRotateText}{\sv 0}}{\sp{\sn fFitShapeToText}{\sv 0}}{\sp{\sn fFitTextToShape}{\sv 0}} 
{\sp{\sn shapePath}{\sv 4}}{\sp{\sn fFillOK}{\sv 0}}{\sp{\sn fFilled}{\sv 0}}{\sp{\sn lineWidth}{\sv 38100}}{\sp{\sn lineEndArrowhead}{\sv 1}}{\sp{\sn fArrowheadsOK}{\sv 1}}{\sp{\sn fLine}{\sv 1}}{\sp{\sn fHitTestLine}{\sv 1}} 
{\sp{\sn lineFillShape}{\sv 1}}{\sp{\sn fShadow}{\sv 0}}{\sp{\sn fshadowObscured}{\sv 0}}{\sp{\sn f3D}{\sv 0}}{\sp{\sn fc3DMetallic}{\sv 0}}{\sp{\sn fc3DUseExtrusionColor}{\sv 0}}{\sp{\sn fc3DLightFace}{\sv 1}}{\sp{\sn fc3DConstrainRotation}{\sv 1}} 
{\sp{\sn fc3DRotationCenterAuto}{\sv 0}}{\sp{\sn fc3DParallel}{\sv 1}}{\sp{\sn fc3DKeyHarsh}{\sv 1}}{\sp{\sn fc3DFillHarsh}{\sv 0}}{\sp{\sn fCalloutMinusX}{\sv 0}}{\sp{\sn fCalloutMinusY}{\sv 0}}{\sp{\sn fCalloutDropAuto}{\sv 0}} 
{\sp{\sn fCalloutLengthSpecified}{\sv 0}}{\sp{\sn lidRegroup}{\sv 2}}}}{\shp{\*\shpinst\shplid1069{\sp{\sn relLeft}{\sv 5328}}{\sp{\sn relTop}{\sv 2016}}{\sp{\sn relRight}{\sv 5328}}{\sp{\sn relBottom}{\sv 2448}}{\sp{\sn fRelFlipH}{\sv 0}} 
{\sp{\sn fRelFlipV}{\sv 0}}{\sp{\sn shapeType}{\sv 20}}{\sp{\sn fAutoTextMargin}{\sv 0}}{\sp{\sn fRotateText}{\sv 0}}{\sp{\sn fFitShapeToText}{\sv 0}}{\sp{\sn fFitTextToShape}{\sv 0}} 
{\sp{\sn shapePath}{\sv 4}}{\sp{\sn fFillOK}{\sv 0}}{\sp{\sn fFilled}{\sv 0}}{\sp{\sn lineWidth}{\sv 38100}}{\sp{\sn lineEndArrowhead}{\sv 1}}{\sp{\sn fArrowheadsOK}{\sv 1}}{\sp{\sn fLine}{\sv 1}}{\sp{\sn fHitTestLine}{\sv 1}} 
{\sp{\sn lineFillShape}{\sv 1}}{\sp{\sn fShadow}{\sv 0}}{\sp{\sn fshadowObscured}{\sv 0}}{\sp{\sn f3D}{\sv 0}}{\sp{\sn fc3DMetallic}{\sv 0}}{\sp{\sn fc3DUseExtrusionColor}{\sv 0}}{\sp{\sn fc3DLightFace}{\sv 1}}{\sp{\sn fc3DConstrainRotation}{\sv 1}} 
{\sp{\sn fc3DRotationCenterAuto}{\sv 0}}{\sp{\sn fc3DParallel}{\sv 1}}{\sp{\sn fc3DKeyHarsh}{\sv 1}}{\sp{\sn fc3DFillHarsh}{\sv 0}}{\sp{\sn fCalloutMinusX}{\sv 0}}{\sp{\sn fCalloutMinusY}{\sv 0}}{\sp{\sn fCalloutDropAuto}{\sv 0}} 
{\sp{\sn fCalloutLengthSpecified}{\sv 0}}{\sp{\sn lidRegroup}{\sv 1}}}}{\shp{\*\shpinst\shplid1070{\sp{\sn relLeft}{\sv 1728}}{\sp{\sn relTop}{\sv 12096}}{\sp{\sn relRight}{\sv 8208}}{\sp{\sn relBottom}{\sv 13148}}{\sp{\sn fRelFlipH}{\sv 0}} 
{\sp{\sn fRelFlipV}{\sv 0}}{\sp{\sn shapeType}{\sv 2}}{\sp{\sn lTxid}{\sv 1441792}}{\sp{\sn dxTextLeft}{\sv 63649}}{\sp{\sn dyTextTop}{\sv 31825}}{\sp{\sn dxTextRight}{\sv 63649}} 
{\sp{\sn dyTextBottom}{\sv 31825}}{\sp{\sn anchorText}{\sv 1}}{\sp{\sn hspNext}{\sv 1070}}{\sp{\sn fillColor}{\sv 14934203}}{\sp{\sn fFilled}{\sv 1}}{\sp{\sn fLine}{\sv 1}}{\sp{\sn wzName}{\sv \'5f\'73\'31\'30\'33\'35}}{\shptxt \pard\plain  
\qc\nowidctlpar\widctlpar\adjustright \fs20\cgrid {Destructor}{\fs24  
\par }\pard \nowidctlpar\widctlpar\adjustright {\fs24 Free memory of Viewport, Light, Game objects and Primitive 
\par }\pard \qc\nowidctlpar\widctlpar\adjustright {\fs24  
\par }\pard \nowidctlpar\widctlpar\adjustright {\fs24 etc.. 
\par }}}}{\shp{\*\shpinst\shplid1071{\sp{\sn relLeft}{\sv 5184}}{\sp{\sn relTop}{\sv 11232}}{\sp{\sn relRight}{\sv 5184}}{\sp{\sn relBottom}{\sv 12096}}{\sp{\sn fRelFlipH}{\sv 0}} 
{\sp{\sn fRelFlipV}{\sv 0}}{\sp{\sn shapeType}{\sv 20}}{\sp{\sn fAutoTextMargin}{\sv 0}}{\sp{\sn fRotateText}{\sv 0}}{\sp{\sn fFitShapeToText}{\sv 0}}{\sp{\sn fFitTextToShape}{\sv 0}} 
{\sp{\sn shapePath}{\sv 4}}{\sp{\sn fFillOK}{\sv 0}}{\sp{\sn fFilled}{\sv 0}}{\sp{\sn lineWidth}{\sv 38100}}{\sp{\sn lineEndArrowhead}{\sv 1}}{\sp{\sn fArrowheadsOK}{\sv 1}}{\sp{\sn fLine}{\sv 1}}{\sp{\sn fHitTestLine}{\sv 1}} 
{\sp{\sn lineFillShape}{\sv 1}}{\sp{\sn fShadow}{\sv 0}}{\sp{\sn fshadowObscured}{\sv 0}}{\sp{\sn f3D}{\sv 0}}{\sp{\sn fc3DMetallic}{\sv 0}}{\sp{\sn fc3DUseExtrusionColor}{\sv 0}}{\sp{\sn fc3DLightFace}{\sv 1}}{\sp{\sn fc3DConstrainRotation}{\sv 1}} 
{\sp{\sn fc3DRotationCenterAuto}{\sv 0}}{\sp{\sn fc3DParallel}{\sv 1}}{\sp{\sn fc3DKeyHarsh}{\sv 1}}{\sp{\sn fc3DFillHarsh}{\sv 0}}{\sp{\sn fCalloutMinusX}{\sv 0}}{\sp{\sn fCalloutMinusY}{\sv 0}}{\sp{\sn fCalloutDropAuto}{\sv 0}} 
{\sp{\sn fCalloutLengthSpecified}{\sv 0}}}}{\shp{\*\shpinst\shplid1072{\sp{\sn relLeft}{\sv 5184}}{\sp{\sn relTop}{\sv 11520}}{\sp{\sn relRight}{\sv 6336}}{\sp{\sn relBottom}{\sv 12096}}{\sp{\sn fRelFlipH}{\sv 0}} 
{\sp{\sn fRelFlipV}{\sv 0}}{\sp{\sn shapeType}{\sv 202}}{\sp{\sn lTxid}{\sv 1507328}}{\sp{\sn fAutoTextMargin}{\sv 0}}{\sp{\sn fRotateText}{\sv 0}}{\sp{\sn fFitShapeToText}{\sv 0}} 
{\sp{\sn fFitTextToShape}{\sv 0}}{\sp{\sn fFilled}{\sv 0}}{\sp{\sn lineWidth}{\sv 38100}}{\sp{\sn fLine}{\sv 0}}{\sp{\sn fHitTestLine}{\sv 1}}{\sp{\sn lineFillShape}{\sv 1}}{\sp{\sn fShadow}{\sv 0}}{\sp{\sn fshadowObscured}{\sv 0}}{\sp{\sn f3D}{\sv 0}} 
{\sp{\sn fc3DMetallic}{\sv 0}}{\sp{\sn fc3DUseExtrusionColor}{\sv 0}}{\sp{\sn fc3DLightFace}{\sv 1}}{\sp{\sn fc3DConstrainRotation}{\sv 1}}{\sp{\sn fc3DRotationCenterAuto}{\sv 0}}{\sp{\sn fc3DParallel}{\sv 1}} 
{\sp{\sn fc3DKeyHarsh}{\sv 1}}{\sp{\sn fc3DFillHarsh}{\sv 0}}{\sp{\sn fCalloutMinusX}{\sv 0}}{\sp{\sn fCalloutMinusY}{\sv 0}}{\sp{\sn fCalloutDropAuto}{\sv 0}}{\sp{\sn fCalloutLengthSpecified}{\sv 0}}{\shptxt \pard\plain  
\nowidctlpar\widctlpar\adjustright \fs20\cgrid {QUIT 
\par }}}}}{\shprslt{\*\do\dobxcolumn\dobypara\dodhgt8219\dppolygon\dppolycount4\dpptx0\dppty0\dpptx8928\dppty0\dpptx8928\dppty11132\dpptx0\dppty11132\dpx0\dpy606\dpxsize8928\dpysize11132 
\dpfillfgcr255\dpfillfgcg255\dpfillfgcb255\dpfillbgcr255\dpfillbgcg255\dpfillbgcb255\dpfillpat1\dplinew15\dplinecor0\dplinecog0\dplinecob0}}}}{ 
Game states for 3D game will have several member objects. Normally, they are C_Viewport, C_Light, C_GameObject3D, C_Primitive and other 2D stuffs. The functionality and flow of the game state for 3D game is as follows:  
\par }\pard\plain \s2\keepn\nowidctlpar\widctlpar\outlinelevel1\adjustright \b\fs32\cgrid {\lang1024  
\par }{ 
\par }\pard\plain \nowidctlpar\widctlpar\adjustright \fs20\cgrid { 
\par  
\par  
\par  
\par  
\par  
\par  
\par  
\par  
\par  
\par  
\par  
\par  
\par  
\par  
\par  
\par  
\par  
\par  
\par  
\par  
\par  
\par  
\par  
\par  
\par  
\par  
\par  
\par  
\par }\pard\plain \s2\keepn\nowidctlpar\widctlpar\outlinelevel1\adjustright \b\fs32\cgrid { 
\par }\pard\plain \nowidctlpar\widctlpar\adjustright \fs20\cgrid { 
\par  
\par  
\par  
\par  
\par  
\par  
\par  
\par  
\par  
\par  
\par  
\par  
\par  
\par  
\par  
\par  
\par  
\par  
\par  
\par  
\par }\pard\plain \s2\keepn\nowidctlpar\widctlpar\outlinelevel1\adjustright \b\fs32\cgrid {\fs28 Basic of C_GameObject3D 
\par }\pard\plain \nowidctlpar\widctlpar\adjustright \fs20\cgrid {\fs24 3D Game object will be instantiated from C_GameObject3D, which has several virtual functions you may want to overload. Below is the list of things you may want to do in each functions 
 
\par }\pard\plain \s5\keepn\nowidctlpar\widctlpar\outlinelevel4\adjustright \b\cgrid {Constructor \endash  }{\b0 Obtains primitive from outside, if the primitive is used by other game object 3D  
\par }\pard \s5\fi60\li1440\keepn\nowidctlpar\widctlpar\outlinelevel4\adjustright {\b0 or create a primitive, if this is the only object that uses the primitive. Also,  initializes the value of member variables. 
\par }\pard\plain \nowidctlpar\widctlpar\adjustright \fs20\cgrid {\b\fs24 Destructor}{\fs24    \endash  Free memory of what we create in the constructor. 
\par }\pard\plain \s5\keepn\nowidctlpar\widctlpar\outlinelevel4\adjustright \b\cgrid {Input            \endash  }{\b0 If the user can control this game objects, check the controller and react. 
\par }\pard\plain \s1\keepn\nowidctlpar\widctlpar\outlinelevel0\adjustright \cgrid {\b Update}{         \endash  Update position, rotation, status and other things that changes. 
\par }\pard\plain \s5\keepn\nowidctlpar\widctlpar\outlinelevel4\adjustright \b\cgrid {Render3D    \endash  }{\b0 Call Render3D member function of the primitive with parameter  
\par }\pard \s5\fi720\li720\keepn\nowidctlpar\widctlpar\outlinelevel4\adjustright {\b0  GetCurrentWorldMatrix(), in general. 
\par }\pard\plain \nowidctlpar\widctlpar\adjustright \fs20\cgrid {\fs24  
\par }\pard\plain \s2\keepn\nowidctlpar\widctlpar\outlinelevel1\adjustright \b\fs32\cgrid {Your first 3D \ldblquote game\rdblquote  for the Engine Engine  
\par }\pard\plain \s3\fi720\keepn\nowidctlpar\widctlpar\outlinelevel2\adjustright \cgrid {Open the first 3D demo, \ldblquote Simple Demo\rdblquote . The files for this demo are \ldblquote simple.h\rdblquote  and \ldblquote simple.cpp\rdblquote  
 in the workspace \ldblquote Demo Game Files }{\lang1024 {\field{\*\fldinst SYMBOL 224 \\f "Wingdings" \\s 12}{\fldrslt\f14\fs24}}}{ Game States }{\lang1024 {\field{\*\fldinst SYMBOL 224 \\f "Wingdings" \\s 12}{\fldrslt\f14\fs24}}}{ 3D Demos }{\lang1024  
{\field{\*\fldinst SYMBOL 224 \\f "Wingdings" \\s 12}{\fldrslt\f14\fs24}}}{ 3D Games \ldblquote  It demonstrates how you can create a 3D application. It is a very simple 3D game, you can fire a bullet to hit moving targets. If you get them all, yo 
u win. This is all that this demo does basically. However, it serves as a basis for programming a 3D game in the Engine Engine. The source codes for this demo is commented in great details. After you understand this demo, you can go ahead and look at the  
source code for other 3D demo and learn more about 3D part of the Engine Engine.  
\par }\pard\plain \s2\keepn\nowidctlpar\widctlpar\outlinelevel1\adjustright \b\fs32\cgrid {\fs24  
\par }\pard\plain \s6\keepn\nowidctlpar\widctlpar\outlinelevel5\adjustright \fs32\cgrid {\b Selected Topics 
\par }\pard\plain \s4\keepn\nowidctlpar\widctlpar\outlinelevel3\adjustright \b\fs28 {\cgrid How to create a primitive? 
\par }\pard\plain \s17\fi720\nowidctlpar\widctlpar\adjustright \cgrid {The template code for creating a primitive that use command list for rendering is as follows. For header file myprimitive.h 
\par }\pard\plain \nowidctlpar\widctlpar\adjustright \fs20\cgrid {\fs24  
\par #include "primitive.h" 
\par  
\par class C_MyPrimitive : public C_Primitive \{ 
\par  
\par public: 
\par  
\par \tab C_MyPrimitive(); 
\par \tab virtual ~C_MyPrimitive(); // You don\rquote t really need to say virtual here, but for 
\par \tab \tab \tab \tab        // good programming practice, I\rquote ll put it in 
\par \tab virtual void Update(); 
\par \tab // You don\rquote t need Render3D function since this primitive uses command list 
\par \tab // for rendering 
\par  
\par \tab // Other public functions 
\par \tab // Public variables 
\par private: 
\par \tab // Private functions 
\par \tab // Private variable 
\par \}; 
\par  
\par For cpp file myprimitive.cpp, 
\par  
\par #include "myprimitive.h" 
\par  
\par //------------------------------------------------------------ 
\par // Constructor, destructor 
\par //------------------------------------------------------------ 
\par C_MyPrimitive::C_MyPrimitive() \{ 
\par }\pard \fi720\nowidctlpar\widctlpar\adjustright {\fs24 // Initialize primitive properties such as number of texture, 
\par // use vertex diffuse color, quality, etc..   
\par // The default properties for the primitive can be found in 
\par // the constructor of C_Primitive in primitive.cpp 
\par // You don\rquote t need to redundantly set the similar properties here 
\par  
\par // By default, updateMemory and updateVertices will be set 
\par // to true, so that the first time Update is called, the buffer will be created 
\par  
\par // Initialize your other variables here 
\par  
\par }\pard \nowidctlpar\widctlpar\adjustright {\fs24 \} 
\par C_MyPrimitive::~C_MyPrimitive() \{ 
\par \tab // If you allocate memory, free it here 
\par \} 
\par  
\par //------------------------------------------------------------ 
\par // Update 
\par // Update the primitive. If the updateMemory is true,  
\par // It will create the vertex buffer, index buffer, and command list 
\par // If the updateVertices is true, it will change the vertex- 
\par // buffer to reflect the current configuration 
\par //------------------------------------------------------------ 
\par void C_MyPrimitive::Update() \{ 
\par  
\par \tab // Check if we need to update memory 
\par \tab if (updateMemory) \{ 
\par \tab \tab numVertices = \'85;// Desired number of vertices in vertex buffer 
\par \tab \tab numIndices = \'85; // Desired number of  indices in index buffer( if used) 
\par \tab \tab  
\par \tab \tab // Create vertex buffer, if it exists, re-create it 
\par \tab \tab CreateVertexBuffer(numVertices); 
\par \tab \tab CreateIndexBuffer(numIndices); 
\par  
\par \tab \tab // Write data into index buffer, if you use it 
\par \tab \tab unsigned short* p_DeviceIBMem;\tab // Memory pointer for index buffer 
\par \tab \tab LockIndexBuffer(&p_DeviceIBMem); 
\par \tab \tab \'85\'85.\tab \tab // Write data to index buffer 
\par }\pard \fi720\li720\nowidctlpar\widctlpar\adjustright {\fs24 \'85\'85. 
\par UnlockIndexBuffer(); 
\par }\pard \nowidctlpar\widctlpar\adjustright {\fs24  
\par \tab \tab // Create command list, and we use it to render the primitive 
\par \tab \tab CreateCommandList(\'85); // Number of commands list 
\par \tab \tab  
\par \tab \tab // Add the commands for drawing the primitive here 
\par \tab \tab SetDrawPrimitiveCommand(\'85); 
\par \tab \tab SetDrawIndexedPrimitiveCommand(\'85); 
\par  
\par \tab \tab // Since we create the buffer and command list already, set the updateMemory  
\par \tab \tab updateMemory = false; 
\par \tab \} 
\par  
\par  
\par  
\par }\pard \fi720\nowidctlpar\widctlpar\adjustright {\fs24 // Check if we need to update vertex data 
\par }\pard \nowidctlpar\widctlpar\adjustright {\fs24 \tab if (updateVertices) \{ 
\par \tab \tab C_VertexManipulator vertexMemory; // Vertex manipulator  
\par \tab \tab LockVertexBuffer(&vertexMemory); 
\par \tab \tab \'85\'85. // Write vertex buffer data  
\par  \tab \tab \'85\'85. 
\par \tab \tab UnlockVertexBuffer(); 
\par  
\par \tab \tab // Finally, we should find the bounding box for this primitive 
\par \tab \tab p_BoundingBox->FindBoundingBox(this);  
\par \tab  
\par \tab \tab updateVertices = false; 
\par \tab \} 
\par \} 
\par  
\par The best way to learn hoe to create your own primitive is by looking at the sample files.  
\par For primitives without index buffer, take a look at Billboard, Cone, Cylinder, Disk, Line, Square, and Triangle. For primitives with index buffer, take a look at Box, Cube, Sphere, and MD2. 
\par The MD2 primitive is rather more complicated than others, so it may be a good idea to look at it after you are comfortable with others.  
\par  
\par Sphere primitive uses it own Render3D function. Please take a look at it for an idea of how to customize your Render3D function.  
\par  
\par }{\b\fs28 Some words about primitive : Update, Bounding box  
\par }\pard\plain \s17\fi720\nowidctlpar\widctlpar\adjustright \cgrid {Wh 
en you first do a new operation for a primitive object, the primitive is not ready to be rendered yet. This is because vertex buffer, index buffer, and command list are not created yet. You need to call Update for at least once before it gets created. Sim 
ilarly, the bounding box for a primitive will not be created until the primitive is updated.  
\par The bounding box for the primitive is in defined using local coordinate, meaning that its cornered are positioned relative to the origin of the primitive. Therefor 
e, before we can use the bounding box to do something, we may need to transform it using a world matrix. The world matrix that is typically used is the world matrix of the game object 3D that this primitive is associated with. 
\par }\pard\plain \nowidctlpar\widctlpar\adjustright \fs20\cgrid {\b\fs28  
\par How to  
\par }\pard\plain \s1\keepn\nowidctlpar\widctlpar\outlinelevel0\adjustright \cgrid {\b\fs32 FAQs 
\par }\pard\plain \nowidctlpar\widctlpar\adjustright \fs20\cgrid {\fs24 Note: GameState refers to a class inherited from C_GameState 
\par           GameObject3D refers to a class inherited from C_GameObject3D. 
\par           Primitive refers to a class inherited from C_Primitive 
\par }\pard\plain \s1\keepn\nowidctlpar\widctlpar\outlinelevel0\adjustright \cgrid {\b\i Why nothing shows up when I run my program or some 3D stuffs don\rquote t show up? 
\par {\pntext\pard\plain\cgrid \hich\af0\dbch\af0\loch\f0 1.\tab}}\pard\plain \fi-360\li360\nowidctlpar\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls2\pnrnot0\pndec\pnfs24\pnstart1\pnindent360\pnhang{\pntxta .}}\ls2\adjustright \fs20\cgrid {\fs24  
In 3D application, most of the time, you may want the screen and Z-Buffer to be cleared before rendering. Make sure you do that by checking whether you have                           }{\fs24\cgrid0  
\par }\pard \nowidctlpar\widctlpar{\*\pn \pnlvlcont\ilvl0\ls0\pnrnot0\pndec }\adjustright {\fs24                                }{\fs24\cgrid0 gp_View->SetClear(true);  
\par       in your GameState\rquote  constructor.}{\cgrid0  
\par {\pntext\pard\plain\cgrid \hich\af0\dbch\af0\loch\f0 2.\tab}}\pard \fi-360\li360\nowidctlpar\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls2\pnrnot0\pndec\pnfs24\pnstart1\pnindent360\pnhang{\pntxta .}}\ls2\adjustright {\fs24  
Make sure that you call GameObject3D->Render3D() in GameState::Render3D(),  also make sure you call Primitive->Render3D(D3DXMATRIX3 *p_WorldMatrix) in your GameObject3D::Render3D. 
\par {\pntext\pard\plain\cgrid \hich\af0\dbch\af0\loch\f0 3.\tab}}\pard \fi-360\li360\nowidctlpar\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls2\pnrnot0\pndec\pnfs24\pnstart1\pnindent360\pnhang{\pntxta .}}\ls2\adjustright {\fs24  
The primitive will be constructed only 
 when the Primitive::Update function is called for the first time, so make sure that your Primitive::Update is called at least once. In most cases, you may want to call Primitive->Update in the Update functions of the class that creates it. Most of the ti 
me, you may even call it when the object is created. 
\par {\pntext\pard\plain\cgrid \hich\af0\dbch\af0\loch\f0 4.\tab}}\pard \fi-360\li360\nowidctlpar\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls2\pnrnot0\pndec\pnfs24\pnstart1\pnindent360\pnhang{\pntxta .}}\ls2\adjustright {\fs24  
Make sure that you have a light source nearby the objects 
\par {\pntext\pard\plain\cgrid \hich\af0\dbch\af0\loch\f0 5.\tab}}\pard \fi-360\li360\nowidctlpar\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls2\pnrnot0\pndec\pnfs24\pnstart1\pnindent360\pnhang{\pntxta .}}\ls2\adjustright {\fs24  
Check the camera settings to make sure that it looks at some objects. 
\par }\pard \nowidctlpar\widctlpar\adjustright {\b\i\fs24  
\par Why can\rquote t I load the PCX or some picture files to use as a texture in my programs? 
\par }\pard\plain \s17\nowidctlpar\widctlpar\adjustright \cgrid {The Engine Engine support only some picture file format such as BMP, TGA, JPG, PNG and etc. The formats that aren\rquote t support are, for exam 
ple, PCX, RAW, etc. You need to find some programs to convert these files to support format 
\par   
\par }\pard\plain \nowidctlpar\widctlpar\adjustright \fs20\cgrid {\b\i\fs24 Why my MD2 textures in PCX file have weird color? 
\par }\pard\plain \s17\nowidctlpar\widctlpar\adjustright \cgrid {To some applications, the PCX file palette will not be displayed correctly, and hence the texture will not be co 
rrect. To fix this, you need to use a program such as Paint Shop Pro, which can be used for 30 days for free, to load the PCX texture and save it to another format. 
\par  
\par }{\b\i Why the fog is not displayed quite correctly for landscape? 
\par }{For landscape, we use multiple passes for rendering it, so the fog will be about twice or 3 times \line \ldblquote denser\rdblquote  depending on whether it\rquote s grayscale light map or not. As stated in the demo, it\rquote  
s a preliminary version, it serves as an example of how you might display the terrain. It doesn\rquote t mean to do everything to match specific purpose. To get around this, you can try setting the fog color to be \'bd 
 or 1/3 of the original color you intended to show. 
\par  
\par }{\b\i When I use bounding boxes, why my program throws an error? 
\par }{If the thrown error is from C_Boun 
dingBox::isIntersect, the reasons can be that one or both of the bounding boxes you check the for the intersection are not valid, or may be NULL. Remember that the bounding box of a primitive will be created only after the first time the C_Primitive::Upda 
te is called. You can get around this by either call C_Primitive::Update for the primitive right after you construct it, or make sure that the first time the C_Primitive::Update function is called is before the C_BoundingBox::isIntersect is called. 
\par }{\b\i  
\par When I use bounding boxes relating functions in my program, it doesn\rquote t work correctly. Why? 
\par {\pntext\pard\plain\s17 \cgrid \hich\af0\dbch\af0\loch\f0 1.\tab}}\pard \s17\fi-360\li360\nowidctlpar\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls3\pnrnot0\pndec\pnstart1\pnindent360\pnhang{\pntxta .}}\ls3\adjustright {Make sure that you set the }{ 
\ul base}{ bounding box of any game object 3D to the bounding box of primitive in the game object 3D constructor or every time the primitive used is changed.  
\par {\pntext\pard\plain\s17 \cgrid \hich\af0\dbch\af0\loch\f0 2.\tab}}\pard \s17\fi-360\li360\nowidctlpar\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls3\pnrnot0\pndec\pnstart1\pnindent360\pnhang{\pntxta .}}\ls3\adjustright { 
If you use the bounding box of a game object 3D to some check, make sure you use C_GameObject3D::GetTransformedBoundingBox  so that the bounding box that is returned will be the world matrix transformed version of the base bounding box, no 
t the un-transformed version. Unless it\rquote s an intention to use the un-transformed one, base bounding box.  
\par }\pard \s17\nowidctlpar\widctlpar\adjustright { 
\par }{\b\i My program has very little frame rate per second! How to make it faster?  
\par }{This is a tough question! Try to do the followings, hopefully they may help: 
\par {\pntext\pard\plain\s17 \cgrid \hich\af0\dbch\af0\loch\f0 1.\tab}}\pard \s17\fi-360\li360\nowidctlpar\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls4\pnrnot0\pndec\pnstart1\pnindent360\pnhang{\pntxta .}}\ls4\adjustright { 
Make sure that you use bounding boxes to check whether an object is in the Frustum viewing volume before trying to render it. It is very crucial when you have many objects. 
\par {\pntext\pard\plain\s17 \cgrid \hich\af0\dbch\af0\loch\f0 2.\tab}}\pard \s17\fi-360\li360\nowidctlpar\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls4\pnrnot0\pndec\pnstart1\pnindent360\pnhang{\pntxta .}}\ls4\adjustright { 
Minimize number of polygon count, for basic primitives, do not use high quality when it\rquote s not necessary. 
\par {\pntext\pard\plain\s17 \cgrid \hich\af0\dbch\af0\loch\f0 3.\tab}}\pard \s17\fi-360\li360\nowidctlpar\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls4\pnrnot0\pndec\pnstart1\pnindent360\pnhang{\pntxta .}}\ls4\adjustright { 
Minimize number of lights turned on at a time. Directional light is also faster than others. 
\par {\pntext\pard\plain\s17 \cgrid \hich\af0\dbch\af0\loch\f0 4.\tab}}\pard \s17\fi-360\li360\nowidctlpar\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls4\pnrnot0\pndec\pnstart1\pnindent360\pnhang{\pntxta .}}\ls4\adjustright {Reduce texture size.  
\par {\pntext\pard\plain\s17 \cgrid \hich\af0\dbch\af0\loch\f0 5.\tab}}\pard \s17\fi-360\li360\nowidctlpar\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls4\pnrnot0\pndec\pnstart1\pnindent360\pnhang{\pntxta .}}\ls4\adjustright { 
Consider using quad tree or BSP for static objects. C_GridWorld3D helps you deal with basic quad tree, also, try looking at C_Landscape for an efficient way to render the grid world data. Try searching }{\field{\*\fldinst { 
 HYPERLINK http://www.google.com }{\fs20 {\*\datafield  
00d0c9ea79f9bace118c8200aa004ba90b02000000170000000f0000007700770077002e0067006f006f0067006c0065002e0063006f006d000000e0c9ea79f9bace118c8200aa004ba90b2e00000068007400740070003a002f002f007700770077002e0067006f006f0067006c0065002e0063006f006d002f0000000000 
0000}}}{\fldrslt {\cs18\ul\cf2 www.google.com}}}{ or looking at 3D graphics books for the two algorithms. 
\par {\pntext\pard\plain\s17 \cgrid \hich\af0\dbch\af0\loch\f0 6.\tab}}\pard \s17\fi-360\li360\nowidctlpar\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls4\pnrnot0\pndec\pnstart1\pnindent360\pnhang{\pntxta .}}\ls4\adjustright { 
Try to partition your 3D scene into small sections and displays only the section the camera currently in or the sections that \ldblquote may be visible\rdblquote  from camera, the connecting \ldblquote portal\rdblquote  
 from current section to that section is in the Frustum Viewing volume. This is not an easy task and also it\rquote s application specific. Try searching \ldblquote Portal rendering technique\rdblquote  in }{\field{\*\fldinst { 
 HYPERLINK http://www.google.com }{\fs20 {\*\datafield  
00d0c9ea79f9bace118c8200aa004ba90b02000000170000000f0000007700770077002e0067006f006f0067006c0065002e0063006f006d000000e0c9ea79f9bace118c8200aa004ba90b2e00000068007400740070003a002f002f007700770077002e0067006f006f0067006c0065002e0063006f006d002f0000000000 
0000}}}{\fldrslt {\cs18\ul\cf2 www.google.com}}}{ 
\par {\pntext\pard\plain\s17 \cgrid \hich\af0\dbch\af0\loch\f0 7.\tab}}\pard \s17\fi-360\li360\nowidctlpar\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls4\pnrnot0\pndec\pnstart1\pnindent360\pnhang{\pntxta .}}\ls4\adjustright { 
Try to modify primitive,h, primitive.cpp and other files to suit your specific purpose. They are written to work for general purpose and hence, not the fastest way.  
\par {\pntext\pard\plain\s17 \cgrid \hich\af0\dbch\af0\loch\f0 8.\tab}}\pard \s17\fi-360\li360\nowidctlpar\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls4\pnrnot0\pndec\pnstart1\pnindent360\pnhang{\pntxta .}}\ls4\adjustright { 
If you are trying to do 6, make sure that you take a look at DirectX SDK document, \ldblquote Performance Optimizations\rdblquote  topic. They have some good tips, again, some of them are application specifics.  
\par {\pntext\pard\plain\s17 \cgrid \hich\af0\dbch\af0\loch\f0 9.\tab}}\pard \s17\fi-360\li360\nowidctlpar\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls4\pnrnot0\pndec\pnstart1\pnindent360\pnhang{\pntxta .}}\ls4\adjustright {If all fail,  
get a new video card }{\lang1024 {\field{\*\fldinst SYMBOL 74 \\f "Wingdings" \\s 12}{\fldrslt\f14\fs24}}}{ 
\par }}