{"id":95,"date":"2011-01-05T23:37:03","date_gmt":"2011-01-05T23:37:03","guid":{"rendered":"http:\/\/paulsarduino.co.uk\/?page_id=95"},"modified":"2011-01-05T23:37:27","modified_gmt":"2011-01-05T23:37:27","slug":"lib3d-h","status":"publish","type":"page","link":"https:\/\/paulsarduino.co.uk\/?page_id=95","title":{"rendered":"lib3d.h"},"content":{"rendered":"<pre>#ifndef lib3d_h\r\n#define lib3d_h\r\n\r\n#define\u00a0 MAX_LINES\u00a0\u00a0\u00a0 10\r\n\r\nclass Point3D\r\n{\r\n public:\r\n short \u00a0\u00a0\u00a0 \u00a0x;\r\n short\u00a0\u00a0 \u00a0y;\r\n short\u00a0\u00a0 \u00a0z;\r\n};\r\n\r\nclass Line3D\r\n{\r\n public:\r\n Line3D();\r\n Line3D(short x1, short y1, short z1, short x2, short y2, short z2);\r\n Point3D\u00a0\u00a0 \u00a0p1;\r\n Point3D\u00a0\u00a0 \u00a0p2;\r\n};\r\n\r\nclass Scene3D\r\n{\r\n public:\r\n Scene3D();\r\n void CreateScene(short resX, short resY, TVout* pTVout);\r\n void UpdateDisplay();\r\n void AddLine(Line3D line);\r\n void AddCube(short cX, short cY, short cZ, short edgeLen);\r\n void AddSphere(float r, Point3D c);\r\n void SetVAngle(float vNew);\r\n void SetHAngle(float hNew);\r\n\r\n private:\r\n TVout*\u00a0\u00a0 \u00a0pTV;\r\n Line3D\u00a0\u00a0 \u00a0lines[MAX_LINES];\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\/\/ all the lines in a 3D wireframe model\r\n short\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 iNumLines;\r\n short\u00a0\u00a0 \u00a0mv;\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\/\/ middle vertically\r\n short\u00a0\u00a0 \u00a0mh;\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\/\/ the horizontal middle\r\n\r\n float\u00a0\u00a0 \u00a0h;\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\/\/ the angles\r\n float\u00a0\u00a0 \u00a0v; \u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\r\n\r\n float\u00a0\u00a0 \u00a0cosh;\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\/\/ precalculated trig values for xyztox and xyztoy functions\r\n float\u00a0\u00a0 \u00a0sinh;\r\n float\u00a0\u00a0 \u00a0cosv;\r\n float\u00a0\u00a0 \u00a0sinv;\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\r\n\r\n int xyztox(short x, short y, short z);\r\n int xyztoy(short x, short y, short z);\r\n void UpdateConsts();\r\n};\r\n\r\n#endif<\/pre>\n","protected":false},"excerpt":{"rendered":"<p>#ifndef lib3d_h #define lib3d_h #define\u00a0 MAX_LINES\u00a0\u00a0\u00a0 10 class Point3D { public: short \u00a0\u00a0\u00a0 \u00a0x; short\u00a0\u00a0 \u00a0y; short\u00a0\u00a0 \u00a0z; }; class Line3D { public: Line3D(); Line3D(short x1, short y1, short z1, short x2, short y2, short z2); Point3D\u00a0\u00a0 \u00a0p1; Point3D\u00a0\u00a0 \u00a0p2; }; class Scene3D { public: Scene3D(); void CreateScene(short resX, short resY, TVout* pTVout); void UpdateDisplay(); [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":16,"menu_order":0,"comment_status":"open","ping_status":"open","template":"","meta":{"footnotes":""},"class_list":["post-95","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/paulsarduino.co.uk\/index.php?rest_route=\/wp\/v2\/pages\/95","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/paulsarduino.co.uk\/index.php?rest_route=\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/paulsarduino.co.uk\/index.php?rest_route=\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/paulsarduino.co.uk\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/paulsarduino.co.uk\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=95"}],"version-history":[{"count":2,"href":"https:\/\/paulsarduino.co.uk\/index.php?rest_route=\/wp\/v2\/pages\/95\/revisions"}],"predecessor-version":[{"id":97,"href":"https:\/\/paulsarduino.co.uk\/index.php?rest_route=\/wp\/v2\/pages\/95\/revisions\/97"}],"up":[{"embeddable":true,"href":"https:\/\/paulsarduino.co.uk\/index.php?rest_route=\/wp\/v2\/pages\/16"}],"wp:attachment":[{"href":"https:\/\/paulsarduino.co.uk\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=95"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}