atom_framework.html 52 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079
  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8">
  5. <!--[if IE]><meta http-equiv="X-UA-Compatible" content="IE=edge"><![endif]-->
  6. <meta name="viewport" content="width=device-width, initial-scale=1.0">
  7. <meta name="generator" content="Asciidoctor 1.5.4">
  8. <title>atom_framework</title>
  9. <link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Open+Sans:300,300italic,400,400italic,600,600italic%7CNoto+Serif:400,400italic,700,700italic%7CDroid+Sans+Mono:400,700">
  10. <style>
  11. /* Asciidoctor default stylesheet | MIT License | http://asciidoctor.org */
  12. /* Remove comment around @import statement below when using as a custom stylesheet */
  13. /*@import "https://fonts.googleapis.com/css?family=Open+Sans:300,300italic,400,400italic,600,600italic%7CNoto+Serif:400,400italic,700,700italic%7CDroid+Sans+Mono:400,700";*/
  14. article,aside,details,figcaption,figure,footer,header,hgroup,main,nav,section,summary{display:block}
  15. audio,canvas,video{display:inline-block}
  16. audio:not([controls]){display:none;height:0}
  17. [hidden],template{display:none}
  18. script{display:none!important}
  19. html{font-family:sans-serif;-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%}
  20. body{margin:0}
  21. a{background:transparent}
  22. a:focus{outline:thin dotted}
  23. a:active,a:hover{outline:0}
  24. h1{font-size:2em;margin:.67em 0}
  25. abbr[title]{border-bottom:1px dotted}
  26. b,strong{font-weight:bold}
  27. dfn{font-style:italic}
  28. hr{-moz-box-sizing:content-box;box-sizing:content-box;height:0}
  29. mark{background:#ff0;color:#000}
  30. code,kbd,pre,samp{font-family:monospace;font-size:1em}
  31. pre{white-space:pre-wrap}
  32. q{quotes:"\201C" "\201D" "\2018" "\2019"}
  33. small{font-size:80%}
  34. sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}
  35. sup{top:-.5em}
  36. sub{bottom:-.25em}
  37. img{border:0}
  38. svg:not(:root){overflow:hidden}
  39. figure{margin:0}
  40. fieldset{border:1px solid silver;margin:0 2px;padding:.35em .625em .75em}
  41. legend{border:0;padding:0}
  42. button,input,select,textarea{font-family:inherit;font-size:100%;margin:0}
  43. button,input{line-height:normal}
  44. button,select{text-transform:none}
  45. button,html input[type="button"],input[type="reset"],input[type="submit"]{-webkit-appearance:button;cursor:pointer}
  46. button[disabled],html input[disabled]{cursor:default}
  47. input[type="checkbox"],input[type="radio"]{box-sizing:border-box;padding:0}
  48. input[type="search"]{-webkit-appearance:textfield;-moz-box-sizing:content-box;-webkit-box-sizing:content-box;box-sizing:content-box}
  49. input[type="search"]::-webkit-search-cancel-button,input[type="search"]::-webkit-search-decoration{-webkit-appearance:none}
  50. button::-moz-focus-inner,input::-moz-focus-inner{border:0;padding:0}
  51. textarea{overflow:auto;vertical-align:top}
  52. table{border-collapse:collapse;border-spacing:0}
  53. *,*:before,*:after{-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box}
  54. html,body{font-size:100%}
  55. body{background:#fff;color:rgba(0,0,0,.8);padding:0;margin:0;font-family:"Noto Serif","DejaVu Serif",serif;font-weight:400;font-style:normal;line-height:1;position:relative;cursor:auto}
  56. a:hover{cursor:pointer}
  57. img,object,embed{max-width:100%;height:auto}
  58. object,embed{height:100%}
  59. img{-ms-interpolation-mode:bicubic}
  60. .left{float:left!important}
  61. .right{float:right!important}
  62. .text-left{text-align:left!important}
  63. .text-right{text-align:right!important}
  64. .text-center{text-align:center!important}
  65. .text-justify{text-align:justify!important}
  66. .hide{display:none}
  67. body{-webkit-font-smoothing:antialiased}
  68. img,object,svg{display:inline-block;vertical-align:middle}
  69. textarea{height:auto;min-height:50px}
  70. select{width:100%}
  71. .center{margin-left:auto;margin-right:auto}
  72. .spread{width:100%}
  73. p.lead,.paragraph.lead>p,#preamble>.sectionbody>.paragraph:first-of-type p{font-size:1.21875em;line-height:1.6}
  74. .subheader,.admonitionblock td.content>.title,.audioblock>.title,.exampleblock>.title,.imageblock>.title,.listingblock>.title,.literalblock>.title,.stemblock>.title,.openblock>.title,.paragraph>.title,.quoteblock>.title,table.tableblock>.title,.verseblock>.title,.videoblock>.title,.dlist>.title,.olist>.title,.ulist>.title,.qlist>.title,.hdlist>.title{line-height:1.45;color:#7a2518;font-weight:400;margin-top:0;margin-bottom:.25em}
  75. div,dl,dt,dd,ul,ol,li,h1,h2,h3,#toctitle,.sidebarblock>.content>.title,h4,h5,h6,pre,form,p,blockquote,th,td{margin:0;padding:0;direction:ltr}
  76. a{color:#2156a5;text-decoration:underline;line-height:inherit}
  77. a:hover,a:focus{color:#1d4b8f}
  78. a img{border:none}
  79. p{font-family:inherit;font-weight:400;font-size:1em;line-height:1.6;margin-bottom:1.25em;text-rendering:optimizeLegibility}
  80. p aside{font-size:.875em;line-height:1.35;font-style:italic}
  81. h1,h2,h3,#toctitle,.sidebarblock>.content>.title,h4,h5,h6{font-family:"Open Sans","DejaVu Sans",sans-serif;font-weight:300;font-style:normal;color:#ba3925;text-rendering:optimizeLegibility;margin-top:1em;margin-bottom:.5em;line-height:1.0125em}
  82. h1 small,h2 small,h3 small,#toctitle small,.sidebarblock>.content>.title small,h4 small,h5 small,h6 small{font-size:60%;color:#e99b8f;line-height:0}
  83. h1{font-size:2.125em}
  84. h2{font-size:1.6875em}
  85. h3,#toctitle,.sidebarblock>.content>.title{font-size:1.375em}
  86. h4,h5{font-size:1.125em}
  87. h6{font-size:1em}
  88. hr{border:solid #ddddd8;border-width:1px 0 0;clear:both;margin:1.25em 0 1.1875em;height:0}
  89. em,i{font-style:italic;line-height:inherit}
  90. strong,b{font-weight:bold;line-height:inherit}
  91. small{font-size:60%;line-height:inherit}
  92. code{font-family:"Droid Sans Mono","DejaVu Sans Mono",monospace;font-weight:400;color:rgba(0,0,0,.9)}
  93. ul,ol,dl{font-size:1em;line-height:1.6;margin-bottom:1.25em;list-style-position:outside;font-family:inherit}
  94. ul,ol,ul.no-bullet,ol.no-bullet{margin-left:1.5em}
  95. ul li ul,ul li ol{margin-left:1.25em;margin-bottom:0;font-size:1em}
  96. ul.square li ul,ul.circle li ul,ul.disc li ul{list-style:inherit}
  97. ul.square{list-style-type:square}
  98. ul.circle{list-style-type:circle}
  99. ul.disc{list-style-type:disc}
  100. ul.no-bullet{list-style:none}
  101. ol li ul,ol li ol{margin-left:1.25em;margin-bottom:0}
  102. dl dt{margin-bottom:.3125em;font-weight:bold}
  103. dl dd{margin-bottom:1.25em}
  104. abbr,acronym{text-transform:uppercase;font-size:90%;color:rgba(0,0,0,.8);border-bottom:1px dotted #ddd;cursor:help}
  105. abbr{text-transform:none}
  106. blockquote{margin:0 0 1.25em;padding:.5625em 1.25em 0 1.1875em;border-left:1px solid #ddd}
  107. blockquote cite{display:block;font-size:.9375em;color:rgba(0,0,0,.6)}
  108. blockquote cite:before{content:"\2014 \0020"}
  109. blockquote cite a,blockquote cite a:visited{color:rgba(0,0,0,.6)}
  110. blockquote,blockquote p{line-height:1.6;color:rgba(0,0,0,.85)}
  111. @media only screen and (min-width:768px){h1,h2,h3,#toctitle,.sidebarblock>.content>.title,h4,h5,h6{line-height:1.2}
  112. h1{font-size:2.75em}
  113. h2{font-size:2.3125em}
  114. h3,#toctitle,.sidebarblock>.content>.title{font-size:1.6875em}
  115. h4{font-size:1.4375em}}
  116. table{background:#fff;margin-bottom:1.25em;border:solid 1px #dedede}
  117. table thead,table tfoot{background:#f7f8f7;font-weight:bold}
  118. table thead tr th,table thead tr td,table tfoot tr th,table tfoot tr td{padding:.5em .625em .625em;font-size:inherit;color:rgba(0,0,0,.8);text-align:left}
  119. table tr th,table tr td{padding:.5625em .625em;font-size:inherit;color:rgba(0,0,0,.8)}
  120. table tr.even,table tr.alt,table tr:nth-of-type(even){background:#f8f8f7}
  121. table thead tr th,table tfoot tr th,table tbody tr td,table tr td,table tfoot tr td{display:table-cell;line-height:1.6}
  122. body{tab-size:4}
  123. h1,h2,h3,#toctitle,.sidebarblock>.content>.title,h4,h5,h6{line-height:1.2;word-spacing:-.05em}
  124. h1 strong,h2 strong,h3 strong,#toctitle strong,.sidebarblock>.content>.title strong,h4 strong,h5 strong,h6 strong{font-weight:400}
  125. .clearfix:before,.clearfix:after,.float-group:before,.float-group:after{content:" ";display:table}
  126. .clearfix:after,.float-group:after{clear:both}
  127. *:not(pre)>code{font-size:.9375em;font-style:normal!important;letter-spacing:0;padding:.1em .5ex;word-spacing:-.15em;background-color:#f7f7f8;-webkit-border-radius:4px;border-radius:4px;line-height:1.45;text-rendering:optimizeSpeed}
  128. pre,pre>code{line-height:1.45;color:rgba(0,0,0,.9);font-family:"Droid Sans Mono","DejaVu Sans Mono",monospace;font-weight:400;text-rendering:optimizeSpeed}
  129. .keyseq{color:rgba(51,51,51,.8)}
  130. kbd{font-family:"Droid Sans Mono","DejaVu Sans Mono",monospace;display:inline-block;color:rgba(0,0,0,.8);font-size:.65em;line-height:1.45;background-color:#f7f7f7;border:1px solid #ccc;-webkit-border-radius:3px;border-radius:3px;-webkit-box-shadow:0 1px 0 rgba(0,0,0,.2),0 0 0 .1em white inset;box-shadow:0 1px 0 rgba(0,0,0,.2),0 0 0 .1em #fff inset;margin:0 .15em;padding:.2em .5em;vertical-align:middle;position:relative;top:-.1em;white-space:nowrap}
  131. .keyseq kbd:first-child{margin-left:0}
  132. .keyseq kbd:last-child{margin-right:0}
  133. .menuseq,.menu{color:rgba(0,0,0,.8)}
  134. b.button:before,b.button:after{position:relative;top:-1px;font-weight:400}
  135. b.button:before{content:"[";padding:0 3px 0 2px}
  136. b.button:after{content:"]";padding:0 2px 0 3px}
  137. p a>code:hover{color:rgba(0,0,0,.9)}
  138. #header,#content,#footnotes,#footer{width:100%;margin-left:auto;margin-right:auto;margin-top:0;margin-bottom:0;max-width:62.5em;*zoom:1;position:relative;padding-left:.9375em;padding-right:.9375em}
  139. #header:before,#header:after,#content:before,#content:after,#footnotes:before,#footnotes:after,#footer:before,#footer:after{content:" ";display:table}
  140. #header:after,#content:after,#footnotes:after,#footer:after{clear:both}
  141. #content{margin-top:1.25em}
  142. #content:before{content:none}
  143. #header>h1:first-child{color:rgba(0,0,0,.85);margin-top:2.25rem;margin-bottom:0}
  144. #header>h1:first-child+#toc{margin-top:8px;border-top:1px solid #ddddd8}
  145. #header>h1:only-child,body.toc2 #header>h1:nth-last-child(2){border-bottom:1px solid #ddddd8;padding-bottom:8px}
  146. #header .details{border-bottom:1px solid #ddddd8;line-height:1.45;padding-top:.25em;padding-bottom:.25em;padding-left:.25em;color:rgba(0,0,0,.6);display:-ms-flexbox;display:-webkit-flex;display:flex;-ms-flex-flow:row wrap;-webkit-flex-flow:row wrap;flex-flow:row wrap}
  147. #header .details span:first-child{margin-left:-.125em}
  148. #header .details span.email a{color:rgba(0,0,0,.85)}
  149. #header .details br{display:none}
  150. #header .details br+span:before{content:"\00a0\2013\00a0"}
  151. #header .details br+span.author:before{content:"\00a0\22c5\00a0";color:rgba(0,0,0,.85)}
  152. #header .details br+span#revremark:before{content:"\00a0|\00a0"}
  153. #header #revnumber{text-transform:capitalize}
  154. #header #revnumber:after{content:"\00a0"}
  155. #content>h1:first-child:not([class]){color:rgba(0,0,0,.85);border-bottom:1px solid #ddddd8;padding-bottom:8px;margin-top:0;padding-top:1rem;margin-bottom:1.25rem}
  156. #toc{border-bottom:1px solid #efefed;padding-bottom:.5em}
  157. #toc>ul{margin-left:.125em}
  158. #toc ul.sectlevel0>li>a{font-style:italic}
  159. #toc ul.sectlevel0 ul.sectlevel1{margin:.5em 0}
  160. #toc ul{font-family:"Open Sans","DejaVu Sans",sans-serif;list-style-type:none}
  161. #toc li{line-height:1.3334;margin-top:.3334em}
  162. #toc a{text-decoration:none}
  163. #toc a:active{text-decoration:underline}
  164. #toctitle{color:#7a2518;font-size:1.2em}
  165. @media only screen and (min-width:768px){#toctitle{font-size:1.375em}
  166. body.toc2{padding-left:15em;padding-right:0}
  167. #toc.toc2{margin-top:0!important;background-color:#f8f8f7;position:fixed;width:15em;left:0;top:0;border-right:1px solid #efefed;border-top-width:0!important;border-bottom-width:0!important;z-index:1000;padding:1.25em 1em;height:100%;overflow:auto}
  168. #toc.toc2 #toctitle{margin-top:0;margin-bottom:.8rem;font-size:1.2em}
  169. #toc.toc2>ul{font-size:.9em;margin-bottom:0}
  170. #toc.toc2 ul ul{margin-left:0;padding-left:1em}
  171. #toc.toc2 ul.sectlevel0 ul.sectlevel1{padding-left:0;margin-top:.5em;margin-bottom:.5em}
  172. body.toc2.toc-right{padding-left:0;padding-right:15em}
  173. body.toc2.toc-right #toc.toc2{border-right-width:0;border-left:1px solid #efefed;left:auto;right:0}}
  174. @media only screen and (min-width:1280px){body.toc2{padding-left:20em;padding-right:0}
  175. #toc.toc2{width:20em}
  176. #toc.toc2 #toctitle{font-size:1.375em}
  177. #toc.toc2>ul{font-size:.95em}
  178. #toc.toc2 ul ul{padding-left:1.25em}
  179. body.toc2.toc-right{padding-left:0;padding-right:20em}}
  180. #content #toc{border-style:solid;border-width:1px;border-color:#e0e0dc;margin-bottom:1.25em;padding:1.25em;background:#f8f8f7;-webkit-border-radius:4px;border-radius:4px}
  181. #content #toc>:first-child{margin-top:0}
  182. #content #toc>:last-child{margin-bottom:0}
  183. #footer{max-width:100%;background-color:rgba(0,0,0,.8);padding:1.25em}
  184. #footer-text{color:rgba(255,255,255,.8);line-height:1.44}
  185. .sect1{padding-bottom:.625em}
  186. @media only screen and (min-width:768px){.sect1{padding-bottom:1.25em}}
  187. .sect1+.sect1{border-top:1px solid #efefed}
  188. #content h1>a.anchor,h2>a.anchor,h3>a.anchor,#toctitle>a.anchor,.sidebarblock>.content>.title>a.anchor,h4>a.anchor,h5>a.anchor,h6>a.anchor{position:absolute;z-index:1001;width:1.5ex;margin-left:-1.5ex;display:block;text-decoration:none!important;visibility:hidden;text-align:center;font-weight:400}
  189. #content h1>a.anchor:before,h2>a.anchor:before,h3>a.anchor:before,#toctitle>a.anchor:before,.sidebarblock>.content>.title>a.anchor:before,h4>a.anchor:before,h5>a.anchor:before,h6>a.anchor:before{content:"\00A7";font-size:.85em;display:block;padding-top:.1em}
  190. #content h1:hover>a.anchor,#content h1>a.anchor:hover,h2:hover>a.anchor,h2>a.anchor:hover,h3:hover>a.anchor,#toctitle:hover>a.anchor,.sidebarblock>.content>.title:hover>a.anchor,h3>a.anchor:hover,#toctitle>a.anchor:hover,.sidebarblock>.content>.title>a.anchor:hover,h4:hover>a.anchor,h4>a.anchor:hover,h5:hover>a.anchor,h5>a.anchor:hover,h6:hover>a.anchor,h6>a.anchor:hover{visibility:visible}
  191. #content h1>a.link,h2>a.link,h3>a.link,#toctitle>a.link,.sidebarblock>.content>.title>a.link,h4>a.link,h5>a.link,h6>a.link{color:#ba3925;text-decoration:none}
  192. #content h1>a.link:hover,h2>a.link:hover,h3>a.link:hover,#toctitle>a.link:hover,.sidebarblock>.content>.title>a.link:hover,h4>a.link:hover,h5>a.link:hover,h6>a.link:hover{color:#a53221}
  193. .audioblock,.imageblock,.literalblock,.listingblock,.stemblock,.videoblock{margin-bottom:1.25em}
  194. .admonitionblock td.content>.title,.audioblock>.title,.exampleblock>.title,.imageblock>.title,.listingblock>.title,.literalblock>.title,.stemblock>.title,.openblock>.title,.paragraph>.title,.quoteblock>.title,table.tableblock>.title,.verseblock>.title,.videoblock>.title,.dlist>.title,.olist>.title,.ulist>.title,.qlist>.title,.hdlist>.title{text-rendering:optimizeLegibility;text-align:left;font-family:"Noto Serif","DejaVu Serif",serif;font-size:1rem;font-style:italic}
  195. table.tableblock>caption.title{white-space:nowrap;overflow:visible;max-width:0}
  196. .paragraph.lead>p,#preamble>.sectionbody>.paragraph:first-of-type p{color:rgba(0,0,0,.85)}
  197. table.tableblock #preamble>.sectionbody>.paragraph:first-of-type p{font-size:inherit}
  198. .admonitionblock>table{border-collapse:separate;border:0;background:none;width:100%}
  199. .admonitionblock>table td.icon{text-align:center;width:80px}
  200. .admonitionblock>table td.icon img{max-width:none}
  201. .admonitionblock>table td.icon .title{font-weight:bold;font-family:"Open Sans","DejaVu Sans",sans-serif;text-transform:uppercase}
  202. .admonitionblock>table td.content{padding-left:1.125em;padding-right:1.25em;border-left:1px solid #ddddd8;color:rgba(0,0,0,.6)}
  203. .admonitionblock>table td.content>:last-child>:last-child{margin-bottom:0}
  204. .exampleblock>.content{border-style:solid;border-width:1px;border-color:#e6e6e6;margin-bottom:1.25em;padding:1.25em;background:#fff;-webkit-border-radius:4px;border-radius:4px}
  205. .exampleblock>.content>:first-child{margin-top:0}
  206. .exampleblock>.content>:last-child{margin-bottom:0}
  207. .sidebarblock{border-style:solid;border-width:1px;border-color:#e0e0dc;margin-bottom:1.25em;padding:1.25em;background:#f8f8f7;-webkit-border-radius:4px;border-radius:4px}
  208. .sidebarblock>:first-child{margin-top:0}
  209. .sidebarblock>:last-child{margin-bottom:0}
  210. .sidebarblock>.content>.title{color:#7a2518;margin-top:0;text-align:center}
  211. .exampleblock>.content>:last-child>:last-child,.exampleblock>.content .olist>ol>li:last-child>:last-child,.exampleblock>.content .ulist>ul>li:last-child>:last-child,.exampleblock>.content .qlist>ol>li:last-child>:last-child,.sidebarblock>.content>:last-child>:last-child,.sidebarblock>.content .olist>ol>li:last-child>:last-child,.sidebarblock>.content .ulist>ul>li:last-child>:last-child,.sidebarblock>.content .qlist>ol>li:last-child>:last-child{margin-bottom:0}
  212. .literalblock pre,.listingblock pre:not(.highlight),.listingblock pre[class="highlight"],.listingblock pre[class^="highlight "],.listingblock pre.CodeRay,.listingblock pre.prettyprint{background:#f7f7f8}
  213. .sidebarblock .literalblock pre,.sidebarblock .listingblock pre:not(.highlight),.sidebarblock .listingblock pre[class="highlight"],.sidebarblock .listingblock pre[class^="highlight "],.sidebarblock .listingblock pre.CodeRay,.sidebarblock .listingblock pre.prettyprint{background:#f2f1f1}
  214. .literalblock pre,.literalblock pre[class],.listingblock pre,.listingblock pre[class]{-webkit-border-radius:4px;border-radius:4px;word-wrap:break-word;padding:1em;font-size:.8125em}
  215. .literalblock pre.nowrap,.literalblock pre[class].nowrap,.listingblock pre.nowrap,.listingblock pre[class].nowrap{overflow-x:auto;white-space:pre;word-wrap:normal}
  216. @media only screen and (min-width:768px){.literalblock pre,.literalblock pre[class],.listingblock pre,.listingblock pre[class]{font-size:.90625em}}
  217. @media only screen and (min-width:1280px){.literalblock pre,.literalblock pre[class],.listingblock pre,.listingblock pre[class]{font-size:1em}}
  218. .literalblock.output pre{color:#f7f7f8;background-color:rgba(0,0,0,.9)}
  219. .listingblock pre.highlightjs{padding:0}
  220. .listingblock pre.highlightjs>code{padding:1em;-webkit-border-radius:4px;border-radius:4px}
  221. .listingblock pre.prettyprint{border-width:0}
  222. .listingblock>.content{position:relative}
  223. .listingblock code[data-lang]:before{display:none;content:attr(data-lang);position:absolute;font-size:.75em;top:.425rem;right:.5rem;line-height:1;text-transform:uppercase;color:#999}
  224. .listingblock:hover code[data-lang]:before{display:block}
  225. .listingblock.terminal pre .command:before{content:attr(data-prompt);padding-right:.5em;color:#999}
  226. .listingblock.terminal pre .command:not([data-prompt]):before{content:"$"}
  227. table.pyhltable{border-collapse:separate;border:0;margin-bottom:0;background:none}
  228. table.pyhltable td{vertical-align:top;padding-top:0;padding-bottom:0;line-height:1.45}
  229. table.pyhltable td.code{padding-left:.75em;padding-right:0}
  230. pre.pygments .lineno,table.pyhltable td:not(.code){color:#999;padding-left:0;padding-right:.5em;border-right:1px solid #ddddd8}
  231. pre.pygments .lineno{display:inline-block;margin-right:.25em}
  232. table.pyhltable .linenodiv{background:none!important;padding-right:0!important}
  233. .quoteblock{margin:0 1em 1.25em 1.5em;display:table}
  234. .quoteblock>.title{margin-left:-1.5em;margin-bottom:.75em}
  235. .quoteblock blockquote,.quoteblock blockquote p{color:rgba(0,0,0,.85);font-size:1.15rem;line-height:1.75;word-spacing:.1em;letter-spacing:0;font-style:italic;text-align:justify}
  236. .quoteblock blockquote{margin:0;padding:0;border:0}
  237. .quoteblock blockquote:before{content:"\201c";float:left;font-size:2.75em;font-weight:bold;line-height:.6em;margin-left:-.6em;color:#7a2518;text-shadow:0 1px 2px rgba(0,0,0,.1)}
  238. .quoteblock blockquote>.paragraph:last-child p{margin-bottom:0}
  239. .quoteblock .attribution{margin-top:.5em;margin-right:.5ex;text-align:right}
  240. .quoteblock .quoteblock{margin-left:0;margin-right:0;padding:.5em 0;border-left:3px solid rgba(0,0,0,.6)}
  241. .quoteblock .quoteblock blockquote{padding:0 0 0 .75em}
  242. .quoteblock .quoteblock blockquote:before{display:none}
  243. .verseblock{margin:0 1em 1.25em 1em}
  244. .verseblock pre{font-family:"Open Sans","DejaVu Sans",sans;font-size:1.15rem;color:rgba(0,0,0,.85);font-weight:300;text-rendering:optimizeLegibility}
  245. .verseblock pre strong{font-weight:400}
  246. .verseblock .attribution{margin-top:1.25rem;margin-left:.5ex}
  247. .quoteblock .attribution,.verseblock .attribution{font-size:.9375em;line-height:1.45;font-style:italic}
  248. .quoteblock .attribution br,.verseblock .attribution br{display:none}
  249. .quoteblock .attribution cite,.verseblock .attribution cite{display:block;letter-spacing:-.025em;color:rgba(0,0,0,.6)}
  250. .quoteblock.abstract{margin:0 0 1.25em 0;display:block}
  251. .quoteblock.abstract blockquote,.quoteblock.abstract blockquote p{text-align:left;word-spacing:0}
  252. .quoteblock.abstract blockquote:before,.quoteblock.abstract blockquote p:first-of-type:before{display:none}
  253. table.tableblock{max-width:100%;border-collapse:separate}
  254. table.tableblock td>.paragraph:last-child p>p:last-child,table.tableblock th>p:last-child,table.tableblock td>p:last-child{margin-bottom:0}
  255. table.tableblock,th.tableblock,td.tableblock{border:0 solid #dedede}
  256. table.grid-all th.tableblock,table.grid-all td.tableblock{border-width:0 1px 1px 0}
  257. table.grid-all tfoot>tr>th.tableblock,table.grid-all tfoot>tr>td.tableblock{border-width:1px 1px 0 0}
  258. table.grid-cols th.tableblock,table.grid-cols td.tableblock{border-width:0 1px 0 0}
  259. table.grid-all *>tr>.tableblock:last-child,table.grid-cols *>tr>.tableblock:last-child{border-right-width:0}
  260. table.grid-rows th.tableblock,table.grid-rows td.tableblock{border-width:0 0 1px 0}
  261. table.grid-all tbody>tr:last-child>th.tableblock,table.grid-all tbody>tr:last-child>td.tableblock,table.grid-all thead:last-child>tr>th.tableblock,table.grid-rows tbody>tr:last-child>th.tableblock,table.grid-rows tbody>tr:last-child>td.tableblock,table.grid-rows thead:last-child>tr>th.tableblock{border-bottom-width:0}
  262. table.grid-rows tfoot>tr>th.tableblock,table.grid-rows tfoot>tr>td.tableblock{border-width:1px 0 0 0}
  263. table.frame-all{border-width:1px}
  264. table.frame-sides{border-width:0 1px}
  265. table.frame-topbot{border-width:1px 0}
  266. th.halign-left,td.halign-left{text-align:left}
  267. th.halign-right,td.halign-right{text-align:right}
  268. th.halign-center,td.halign-center{text-align:center}
  269. th.valign-top,td.valign-top{vertical-align:top}
  270. th.valign-bottom,td.valign-bottom{vertical-align:bottom}
  271. th.valign-middle,td.valign-middle{vertical-align:middle}
  272. table thead th,table tfoot th{font-weight:bold}
  273. tbody tr th{display:table-cell;line-height:1.6;background:#f7f8f7}
  274. tbody tr th,tbody tr th p,tfoot tr th,tfoot tr th p{color:rgba(0,0,0,.8);font-weight:bold}
  275. p.tableblock>code:only-child{background:none;padding:0}
  276. p.tableblock{font-size:1em}
  277. td>div.verse{white-space:pre}
  278. ol{margin-left:1.75em}
  279. ul li ol{margin-left:1.5em}
  280. dl dd{margin-left:1.125em}
  281. dl dd:last-child,dl dd:last-child>:last-child{margin-bottom:0}
  282. ol>li p,ul>li p,ul dd,ol dd,.olist .olist,.ulist .ulist,.ulist .olist,.olist .ulist{margin-bottom:.625em}
  283. ul.unstyled,ol.unnumbered,ul.checklist,ul.none{list-style-type:none}
  284. ul.unstyled,ol.unnumbered,ul.checklist{margin-left:.625em}
  285. ul.checklist li>p:first-child>.fa-square-o:first-child,ul.checklist li>p:first-child>.fa-check-square-o:first-child{width:1em;font-size:.85em}
  286. ul.checklist li>p:first-child>input[type="checkbox"]:first-child{width:1em;position:relative;top:1px}
  287. ul.inline{margin:0 auto .625em auto;margin-left:-1.375em;margin-right:0;padding:0;list-style:none;overflow:hidden}
  288. ul.inline>li{list-style:none;float:left;margin-left:1.375em;display:block}
  289. ul.inline>li>*{display:block}
  290. .unstyled dl dt{font-weight:400;font-style:normal}
  291. ol.arabic{list-style-type:decimal}
  292. ol.decimal{list-style-type:decimal-leading-zero}
  293. ol.loweralpha{list-style-type:lower-alpha}
  294. ol.upperalpha{list-style-type:upper-alpha}
  295. ol.lowerroman{list-style-type:lower-roman}
  296. ol.upperroman{list-style-type:upper-roman}
  297. ol.lowergreek{list-style-type:lower-greek}
  298. .hdlist>table,.colist>table{border:0;background:none}
  299. .hdlist>table>tbody>tr,.colist>table>tbody>tr{background:none}
  300. td.hdlist1,td.hdlist2{vertical-align:top;padding:0 .625em}
  301. td.hdlist1{font-weight:bold;padding-bottom:1.25em}
  302. .literalblock+.colist,.listingblock+.colist{margin-top:-.5em}
  303. .colist>table tr>td:first-of-type{padding:0 .75em;line-height:1}
  304. .colist>table tr>td:last-of-type{padding:.25em 0}
  305. .thumb,.th{line-height:0;display:inline-block;border:solid 4px #fff;-webkit-box-shadow:0 0 0 1px #ddd;box-shadow:0 0 0 1px #ddd}
  306. .imageblock.left,.imageblock[style*="float: left"]{margin:.25em .625em 1.25em 0}
  307. .imageblock.right,.imageblock[style*="float: right"]{margin:.25em 0 1.25em .625em}
  308. .imageblock>.title{margin-bottom:0}
  309. .imageblock.thumb,.imageblock.th{border-width:6px}
  310. .imageblock.thumb>.title,.imageblock.th>.title{padding:0 .125em}
  311. .image.left,.image.right{margin-top:.25em;margin-bottom:.25em;display:inline-block;line-height:0}
  312. .image.left{margin-right:.625em}
  313. .image.right{margin-left:.625em}
  314. a.image{text-decoration:none;display:inline-block}
  315. a.image object{pointer-events:none}
  316. sup.footnote,sup.footnoteref{font-size:.875em;position:static;vertical-align:super}
  317. sup.footnote a,sup.footnoteref a{text-decoration:none}
  318. sup.footnote a:active,sup.footnoteref a:active{text-decoration:underline}
  319. #footnotes{padding-top:.75em;padding-bottom:.75em;margin-bottom:.625em}
  320. #footnotes hr{width:20%;min-width:6.25em;margin:-.25em 0 .75em 0;border-width:1px 0 0 0}
  321. #footnotes .footnote{padding:0 .375em 0 .225em;line-height:1.3334;font-size:.875em;margin-left:1.2em;text-indent:-1.05em;margin-bottom:.2em}
  322. #footnotes .footnote a:first-of-type{font-weight:bold;text-decoration:none}
  323. #footnotes .footnote:last-of-type{margin-bottom:0}
  324. #content #footnotes{margin-top:-.625em;margin-bottom:0;padding:.75em 0}
  325. .gist .file-data>table{border:0;background:#fff;width:100%;margin-bottom:0}
  326. .gist .file-data>table td.line-data{width:99%}
  327. div.unbreakable{page-break-inside:avoid}
  328. .big{font-size:larger}
  329. .small{font-size:smaller}
  330. .underline{text-decoration:underline}
  331. .overline{text-decoration:overline}
  332. .line-through{text-decoration:line-through}
  333. .aqua{color:#00bfbf}
  334. .aqua-background{background-color:#00fafa}
  335. .black{color:#000}
  336. .black-background{background-color:#000}
  337. .blue{color:#0000bf}
  338. .blue-background{background-color:#0000fa}
  339. .fuchsia{color:#bf00bf}
  340. .fuchsia-background{background-color:#fa00fa}
  341. .gray{color:#606060}
  342. .gray-background{background-color:#7d7d7d}
  343. .green{color:#006000}
  344. .green-background{background-color:#007d00}
  345. .lime{color:#00bf00}
  346. .lime-background{background-color:#00fa00}
  347. .maroon{color:#600000}
  348. .maroon-background{background-color:#7d0000}
  349. .navy{color:#000060}
  350. .navy-background{background-color:#00007d}
  351. .olive{color:#606000}
  352. .olive-background{background-color:#7d7d00}
  353. .purple{color:#600060}
  354. .purple-background{background-color:#7d007d}
  355. .red{color:#bf0000}
  356. .red-background{background-color:#fa0000}
  357. .silver{color:#909090}
  358. .silver-background{background-color:#bcbcbc}
  359. .teal{color:#006060}
  360. .teal-background{background-color:#007d7d}
  361. .white{color:#bfbfbf}
  362. .white-background{background-color:#fafafa}
  363. .yellow{color:#bfbf00}
  364. .yellow-background{background-color:#fafa00}
  365. span.icon>.fa{cursor:default}
  366. .admonitionblock td.icon [class^="fa icon-"]{font-size:2.5em;text-shadow:1px 1px 2px rgba(0,0,0,.5);cursor:default}
  367. .admonitionblock td.icon .icon-note:before{content:"\f05a";color:#19407c}
  368. .admonitionblock td.icon .icon-tip:before{content:"\f0eb";text-shadow:1px 1px 2px rgba(155,155,0,.8);color:#111}
  369. .admonitionblock td.icon .icon-warning:before{content:"\f071";color:#bf6900}
  370. .admonitionblock td.icon .icon-caution:before{content:"\f06d";color:#bf3400}
  371. .admonitionblock td.icon .icon-important:before{content:"\f06a";color:#bf0000}
  372. .conum[data-value]{display:inline-block;color:#fff!important;background-color:rgba(0,0,0,.8);-webkit-border-radius:100px;border-radius:100px;text-align:center;font-size:.75em;width:1.67em;height:1.67em;line-height:1.67em;font-family:"Open Sans","DejaVu Sans",sans-serif;font-style:normal;font-weight:bold}
  373. .conum[data-value] *{color:#fff!important}
  374. .conum[data-value]+b{display:none}
  375. .conum[data-value]:after{content:attr(data-value)}
  376. pre .conum[data-value]{position:relative;top:-.125em}
  377. b.conum *{color:inherit!important}
  378. .conum:not([data-value]):empty{display:none}
  379. dt,th.tableblock,td.content,div.footnote{text-rendering:optimizeLegibility}
  380. h1,h2,p,td.content,span.alt{letter-spacing:-.01em}
  381. p strong,td.content strong,div.footnote strong{letter-spacing:-.005em}
  382. p,blockquote,dt,td.content,span.alt{font-size:1.0625rem}
  383. p{margin-bottom:1.25rem}
  384. .sidebarblock p,.sidebarblock dt,.sidebarblock td.content,p.tableblock{font-size:1em}
  385. .exampleblock>.content{background-color:#fffef7;border-color:#e0e0dc;-webkit-box-shadow:0 1px 4px #e0e0dc;box-shadow:0 1px 4px #e0e0dc}
  386. .print-only{display:none!important}
  387. @media print{@page{margin:1.25cm .75cm}
  388. *{-webkit-box-shadow:none!important;box-shadow:none!important;text-shadow:none!important}
  389. a{color:inherit!important;text-decoration:underline!important}
  390. a.bare,a[href^="#"],a[href^="mailto:"]{text-decoration:none!important}
  391. a[href^="http:"]:not(.bare):after,a[href^="https:"]:not(.bare):after{content:"(" attr(href) ")";display:inline-block;font-size:.875em;padding-left:.25em}
  392. abbr[title]:after{content:" (" attr(title) ")"}
  393. pre,blockquote,tr,img,object,svg{page-break-inside:avoid}
  394. thead{display:table-header-group}
  395. svg{max-width:100%}
  396. p,blockquote,dt,td.content{font-size:1em;orphans:3;widows:3}
  397. h2,h3,#toctitle,.sidebarblock>.content>.title{page-break-after:avoid}
  398. #toc,.sidebarblock,.exampleblock>.content{background:none!important}
  399. #toc{border-bottom:1px solid #ddddd8!important;padding-bottom:0!important}
  400. .sect1{padding-bottom:0!important}
  401. .sect1+.sect1{border:0!important}
  402. #header>h1:first-child{margin-top:1.25rem}
  403. body.book #header{text-align:center}
  404. body.book #header>h1:first-child{border:0!important;margin:2.5em 0 1em 0}
  405. body.book #header .details{border:0!important;display:block;padding:0!important}
  406. body.book #header .details span:first-child{margin-left:0!important}
  407. body.book #header .details br{display:block}
  408. body.book #header .details br+span:before{content:none!important}
  409. body.book #toc{border:0!important;text-align:left!important;padding:0!important;margin:0!important}
  410. body.book #toc,body.book #preamble,body.book h1.sect0,body.book .sect1>h2{page-break-before:always}
  411. .listingblock code[data-lang]:before{display:block}
  412. #footer{background:none!important;padding:0 .9375em}
  413. #footer-text{color:rgba(0,0,0,.6)!important;font-size:.9em}
  414. .hide-on-print{display:none!important}
  415. .print-only{display:block!important}
  416. .hide-for-print{display:none!important}
  417. .show-for-print{display:inherit!important}}
  418. </style>
  419. <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.5.0/css/font-awesome.min.css">
  420. <style>
  421. /* Stylesheet for CodeRay to match GitHub theme | MIT License | http://foundation.zurb.com */
  422. /*pre.CodeRay {background-color:#f7f7f8;}*/
  423. .CodeRay .line-numbers{border-right:1px solid #d8d8d8;padding:0 0.5em 0 .25em}
  424. .CodeRay span.line-numbers{display:inline-block;margin-right:.5em;color:rgba(0,0,0,.3)}
  425. .CodeRay .line-numbers strong{color:rgba(0,0,0,.4)}
  426. table.CodeRay{border-collapse:separate;border-spacing:0;margin-bottom:0;border:0;background:none}
  427. table.CodeRay td{vertical-align: top;line-height:1.45}
  428. table.CodeRay td.line-numbers{text-align:right}
  429. table.CodeRay td.line-numbers>pre{padding:0;color:rgba(0,0,0,.3)}
  430. table.CodeRay td.code{padding:0 0 0 .5em}
  431. table.CodeRay td.code>pre{padding:0}
  432. .CodeRay .debug{color:#fff !important;background:#000080 !important}
  433. .CodeRay .annotation{color:#007}
  434. .CodeRay .attribute-name{color:#000080}
  435. .CodeRay .attribute-value{color:#700}
  436. .CodeRay .binary{color:#509}
  437. .CodeRay .comment{color:#998;font-style:italic}
  438. .CodeRay .char{color:#04d}
  439. .CodeRay .char .content{color:#04d}
  440. .CodeRay .char .delimiter{color:#039}
  441. .CodeRay .class{color:#458;font-weight:bold}
  442. .CodeRay .complex{color:#a08}
  443. .CodeRay .constant,.CodeRay .predefined-constant{color:#008080}
  444. .CodeRay .color{color:#099}
  445. .CodeRay .class-variable{color:#369}
  446. .CodeRay .decorator{color:#b0b}
  447. .CodeRay .definition{color:#099}
  448. .CodeRay .delimiter{color:#000}
  449. .CodeRay .doc{color:#970}
  450. .CodeRay .doctype{color:#34b}
  451. .CodeRay .doc-string{color:#d42}
  452. .CodeRay .escape{color:#666}
  453. .CodeRay .entity{color:#800}
  454. .CodeRay .error{color:#808}
  455. .CodeRay .exception{color:inherit}
  456. .CodeRay .filename{color:#099}
  457. .CodeRay .function{color:#900;font-weight:bold}
  458. .CodeRay .global-variable{color:#008080}
  459. .CodeRay .hex{color:#058}
  460. .CodeRay .integer,.CodeRay .float{color:#099}
  461. .CodeRay .include{color:#555}
  462. .CodeRay .inline{color:#000}
  463. .CodeRay .inline .inline{background:#ccc}
  464. .CodeRay .inline .inline .inline{background:#bbb}
  465. .CodeRay .inline .inline-delimiter{color:#d14}
  466. .CodeRay .inline-delimiter{color:#d14}
  467. .CodeRay .important{color:#555;font-weight:bold}
  468. .CodeRay .interpreted{color:#b2b}
  469. .CodeRay .instance-variable{color:#008080}
  470. .CodeRay .label{color:#970}
  471. .CodeRay .local-variable{color:#963}
  472. .CodeRay .octal{color:#40e}
  473. .CodeRay .predefined{color:#369}
  474. .CodeRay .preprocessor{color:#579}
  475. .CodeRay .pseudo-class{color:#555}
  476. .CodeRay .directive{font-weight:bold}
  477. .CodeRay .type{font-weight:bold}
  478. .CodeRay .predefined-type{color:inherit}
  479. .CodeRay .reserved,.CodeRay .keyword {color:#000;font-weight:bold}
  480. .CodeRay .key{color:#808}
  481. .CodeRay .key .delimiter{color:#606}
  482. .CodeRay .key .char{color:#80f}
  483. .CodeRay .value{color:#088}
  484. .CodeRay .regexp .delimiter{color:#808}
  485. .CodeRay .regexp .content{color:#808}
  486. .CodeRay .regexp .modifier{color:#808}
  487. .CodeRay .regexp .char{color:#d14}
  488. .CodeRay .regexp .function{color:#404;font-weight:bold}
  489. .CodeRay .string{color:#d20}
  490. .CodeRay .string .string .string{background:#ffd0d0}
  491. .CodeRay .string .content{color:#d14}
  492. .CodeRay .string .char{color:#d14}
  493. .CodeRay .string .delimiter{color:#d14}
  494. .CodeRay .shell{color:#d14}
  495. .CodeRay .shell .delimiter{color:#d14}
  496. .CodeRay .symbol{color:#990073}
  497. .CodeRay .symbol .content{color:#a60}
  498. .CodeRay .symbol .delimiter{color:#630}
  499. .CodeRay .tag{color:#008080}
  500. .CodeRay .tag-special{color:#d70}
  501. .CodeRay .variable{color:#036}
  502. .CodeRay .insert{background:#afa}
  503. .CodeRay .delete{background:#faa}
  504. .CodeRay .change{color:#aaf;background:#007}
  505. .CodeRay .head{color:#f8f;background:#505}
  506. .CodeRay .insert .insert{color:#080}
  507. .CodeRay .delete .delete{color:#800}
  508. .CodeRay .change .change{color:#66f}
  509. .CodeRay .head .head{color:#f4f}
  510. </style>
  511. </head>
  512. <body class="article toc2 toc-left">
  513. <div id="header">
  514. <h1>atom_framework</h1>
  515. <div class="details">
  516. <span id="author" class="author"></span><br>
  517. <span id="revnumber">version ,</span>
  518. <span id="revdate">2016/03/17 20:48</span>
  519. </div>
  520. <div id="toc" class="toc2">
  521. <div id="toctitle">Table of Contents</div>
  522. <ul class="sectlevel1">
  523. <li><a href="#atom-framework-introduction">Atom framework Introduction</a>
  524. <ul class="sectlevel2">
  525. <li><a href="#open-source">Open Source</a></li>
  526. <li><a href="#documentations">Documentations:</a></li>
  527. <li><a href="#idea-buzz">Idea &amp; Buzz</a></li>
  528. <li><a href="#features">Features</a></li>
  529. <li><a href="#architecture-and-components">Architecture and components</a></li>
  530. <li><a href="#vision">Vision</a></li>
  531. <li><a href="#project-status">Project status</a></li>
  532. <li><a href="#other-open-source-dependencies">Other open-source dependencies</a></li>
  533. </ul>
  534. </li>
  535. </ul>
  536. </div>
  537. </div>
  538. <div id="content">
  539. <div class="sect1">
  540. <h2 id="atom-framework-introduction">Atom framework Introduction</h2>
  541. <div class="sectionbody">
  542. <div class="paragraph">
  543. <p><strong>Hi Monkeys,</strong></p>
  544. </div>
  545. <div class="paragraph">
  546. <p><strong>Atom framework for game developing in Java. Powered by JME3.</strong></p>
  547. </div>
  548. <div class="paragraph">
  549. <p><strong>Atom</strong> framework which on top of JME3 and have some features like AI, Scripting, Database, VirtualReallity, Trigger, Multiplayer…(more below) to make developing game process in JME3 much more easier!</p>
  550. </div>
  551. <div class="paragraph">
  552. <p><a href="../../jme3/atomixtuts.html">atomixtuts</a></p>
  553. </div>
  554. <div class="sect2">
  555. <h3 id="open-source">Open Source</h3>
  556. <div class="paragraph">
  557. <p>Atom Core : The AtomCore source code is hosted in Googlecode</p>
  558. </div>
  559. <div class="paragraph">
  560. <p>Googlecode: <a href="https://code.google.com/p/atom-game-framework/">https://code.google.com/p/atom-game-framework/</a></p>
  561. </div>
  562. <div class="paragraph">
  563. <p>Github: <a href="https://github.com/atomixnmc/atom-game-framework">https://github.com/atomixnmc/atom-game-framework</a></p>
  564. </div>
  565. <div class="paragraph">
  566. <p>Wiki: <a href="https://code.google.com/p/atom-game-framework/wiki/">https://code.google.com/p/atom-game-framework/wiki/</a></p>
  567. </div>
  568. </div>
  569. <div class="sect2">
  570. <h3 id="documentations">Documentations:</h3>
  571. <div class="paragraph">
  572. <p><a href="../../jme3/advanced/atom_framework/design.html">Detailed architecture designs</a></p>
  573. </div>
  574. <div class="paragraph">
  575. <p><a href="../../jme3/advanced/atom_framework/docs.html">Detailed documentation</a></p>
  576. </div>
  577. <div class="paragraph">
  578. <p><a href="../../jme3/advanced/atom_framework/comparison.html">Detailed comparison</a></p>
  579. </div>
  580. </div>
  581. <div class="sect2">
  582. <h3 id="idea-buzz">Idea &amp; Buzz</h3>
  583. <div class="paragraph">
  584. <p><strong>Better, more freedom, more fun!</strong></p>
  585. </div>
  586. <div class="paragraph">
  587. <p>From <strike>UDK and Unity</strike> 's battle field, I&#8217;ve dreamt about making even better game engine with the help of my 2 fav technologies - <strong>Java</strong> and <strong>opensource</strong>.</p>
  588. </div>
  589. <div class="paragraph">
  590. <p>JME3 and Netbean combination are the most brighten idea I 've seen in years. I think it deserve a better reputation worldwide.</p>
  591. </div>
  592. <div class="sect3">
  593. <h4 id="initial-ideas">Initial Ideas:</h4>
  594. <div class="ulist">
  595. <ul>
  596. <li>
  597. <p>Ease the learning curve</p>
  598. </li>
  599. <li>
  600. <p>Fun play/create game like kids in a sandbox</p>
  601. </li>
  602. <li>
  603. <p>Framework for games and apps(3D)</p>
  604. </li>
  605. <li>
  606. <p>Nextgen techs</p>
  607. </li>
  608. </ul>
  609. </div>
  610. </div>
  611. <div class="sect3">
  612. <h4 id="why-call-it-atom">Why call it Atom?</h4>
  613. <div class="paragraph">
  614. <p><a href="https://en.wikipedia.org/wiki/Atom">https://en.wikipedia.org/wiki/Atom</a></p>
  615. </div>
  616. <div class="paragraph">
  617. <p>Yes, this is for game developing. But in its heart is future&#8217;s technologies.</p>
  618. </div>
  619. <div class="literalblock">
  620. <div class="content">
  621. <pre> Atom Etymology: Devive the thing as small as you can, than compose it into a thing again.</pre>
  622. </div>
  623. </div>
  624. <div class="quoteblock">
  625. <blockquote>
  626. <div class="literalblock">
  627. <div class="content">
  628. <pre>The same in programming, after all, modulize is to be integrated again! That really is the core idea of Atom framework, use the most simple primitives to compose the bigger, bigger matter! Every where, small tiny, fastest, embed inside others, stick together well…Take a look in Atom Ex &lt;&lt;jme3/advanced/atom_framework/atomex#,atomex&gt;&gt;, you will see the picture more clearly.</pre>
  629. </div>
  630. </div>
  631. </blockquote>
  632. </div>
  633. <div class="paragraph">
  634. <p>The most conceptual inspiration for Atom framework is project <a href="http://ptolemy.eecs.berkeley.edu/index.htm">http://ptolemy.eecs.berkeley.edu/index.htm</a> . Unfortunately Ptolemy is in “for research only area and its direction toward the much large scale than game developing. That&#8217;s why Atom framework was born with the learnt architecture from Ptolemy.</p>
  635. </div>
  636. <div class="quoteblock">
  637. <blockquote>
  638. <div class="literalblock">
  639. <div class="content">
  640. <pre>The Ptolemy project studies modeling, simulation, and design of concurrent, real-time, embedded systems. The focus is on assembly of concurrent components. The key underlying principle in the project is the use of well-defined models of computation that govern the interaction between components. A major problem area being addressed is the use of heterogeneous mixtures of models of computation</pre>
  641. </div>
  642. </div>
  643. </blockquote>
  644. </div>
  645. <div class="quoteblock">
  646. <blockquote>
  647. <div class="literalblock">
  648. <div class="content">
  649. <pre>Atom is designed to MAKE concurrent, real-time, embedded systems and GAMES. So it focus more in code generation, profile, monitoring; focus more in graphics, physics, player experience…etc. Underlying, it borrow quite a bunch of concept that built in Ptolemy.</pre>
  650. </div>
  651. </div>
  652. </blockquote>
  653. </div>
  654. </div>
  655. </div>
  656. <div class="sect2">
  657. <h3 id="features">Features</h3>
  658. <div class="ulist">
  659. <ul>
  660. <li>
  661. <p>Atom framework Highlights*</p>
  662. </li>
  663. <li>
  664. <p>Flexible: Game | simulations centric but not forced!</p>
  665. </li>
  666. <li>
  667. <p>Modular: Dependency injection along with Component injection</p>
  668. </li>
  669. <li>
  670. <p>Parallel: Embrace parallel computing</p>
  671. </li>
  672. <li>
  673. <p>Next gen: Come with Bleeding edge technologies and powers of Java languages</p>
  674. </li>
  675. <li>
  676. <p>Cloud ready: Scale to web and distributed computing</p>
  677. </li>
  678. <li>
  679. <p>With ease: <abbr title="Graphical User Interface">GUI</abbr> Tools everywhere, almost zero config need</p>
  680. </li>
  681. </ul>
  682. </div>
  683. <div class="paragraph">
  684. <p>Full Features list</p>
  685. </div>
  686. <div class="ulist">
  687. <ul>
  688. <li>
  689. <p>Cross game genre framework for JME3</p>
  690. <div class="ulist">
  691. <ul>
  692. <li>
  693. <p><a href="../../jme3/advanced/atom_framework/atomcore.html">General stage - world ; game play and cycle</a></p>
  694. </li>
  695. <li>
  696. <p><a href="../../jme3/advanced/atom_framework/atomcore/entitysystem.html">General Entity framework</a></p>
  697. </li>
  698. <li>
  699. <p><a href="../../jme3/advanced/atom_framework/atomcore/event.html">General Event framework</a></p>
  700. </li>
  701. <li>
  702. <p><a href="../../jme3/advanced/atom_framework/atomcore/config.html">Intuitive config framework</a>- toward zero-config approach</p>
  703. </li>
  704. <li>
  705. <p><a href="../../jme3/advanced/atom_framework/atomcore/actor.html">Actor and interactive agents, workers</a></p>
  706. </li>
  707. <li>
  708. <p><a href="../../jme3/advanced/atom_framework/atomcore/execution.html">Execution and monitor</a></p>
  709. </li>
  710. </ul>
  711. </div>
  712. </li>
  713. <li>
  714. <p>Network | Web ready</p>
  715. <div class="ulist">
  716. <ul>
  717. <li>
  718. <p>Web scale support</p>
  719. </li>
  720. <li>
  721. <p><a href="../../jme3/advanced/atom_framework/atomcore/net.html">Network &amp; Messaging framework</a></p>
  722. </li>
  723. <li>
  724. <p><a href="../../jme3/advanced/atom_framework/atomcore/league.html">Social foundation framework</a></p>
  725. </li>
  726. </ul>
  727. </div>
  728. </li>
  729. <li>
  730. <p>Additional to JME3 features (as libraries or toolkits)</p>
  731. <div class="ulist">
  732. <ul>
  733. <li>
  734. <p><a href="../../jme3/advanced/atom_framework/atomcore/fx.html">UltimateEffects</a></p>
  735. <div class="ulist">
  736. <ul>
  737. <li>
  738. <p><a href="../../jme3/advanced/atom_framework/atomcore/particles.html">UltimateParticles</a></p>
  739. </li>
  740. <li>
  741. <p><a href="../../jme3/advanced/atom_framework/atomcore/sprite.html">Cross dimension model</a></p>
  742. </li>
  743. <li>
  744. <p><a href="../../jme3/advanced/atom_framework/atomcore/filters.html">Filters</a></p>
  745. </li>
  746. </ul>
  747. </div>
  748. </li>
  749. <li>
  750. <p><a href="../../jme3/advanced/atom_framework/atomcore/cinematic.html">Cinematic</a></p>
  751. </li>
  752. <li>
  753. <p><a href="../../jme3/advanced/atom_framework/atomcore/gui.html">General extensible GUI with CSS</a></p>
  754. </li>
  755. <li>
  756. <p><a href="../../jme3/advanced/atom_framework/atomexasset.html">Ultimate asset pipeline</a></p>
  757. </li>
  758. <li>
  759. <p><a href="../../jme3/advanced/atom_framework/atomanim.html">Ultimate animation framework</a></p>
  760. </li>
  761. <li>
  762. <p><a href="../../jme3/advanced/atom_framework/atomelight.html">Extra rendering methods</a></p>
  763. </li>
  764. </ul>
  765. </div>
  766. </li>
  767. </ul>
  768. </div>
  769. </div>
  770. <div class="sect2">
  771. <h3 id="architecture-and-components">Architecture and components</h3>
  772. <div class="paragraph">
  773. <p>Here are its architecture and components.</p>
  774. </div>
  775. <div class="sect3">
  776. <h4 id="atom-core-libraries">Atom Core Libraries</h4>
  777. <div class="ulist">
  778. <ul>
  779. <li>
  780. <p><strong><a href="../../jme3/advanced/atom_framework/atomcore.html">AtomCore</a></strong> : addition to JME3 core packages.</p>
  781. <div class="ulist">
  782. <ul>
  783. <li>
  784. <p>Cross game-genre elements: stage, cycle, entity, logic, trigger, event, config;</p>
  785. </li>
  786. <li>
  787. <p>Managers: Advanced assets manager, dependecy injection, factory, scripting, basic DB..;</p>
  788. </li>
  789. <li>
  790. <p>Common case: Common state, common scenerio, common UIs…</p>
  791. </li>
  792. <li>
  793. <p>More Buzz? <a href="../../jme3/advanced/atom_framework/atomcore.html">AtomCore documentation</a></p>
  794. </li>
  795. </ul>
  796. </div>
  797. </li>
  798. <li>
  799. <p><strong><a href="../../jme3/advanced/atom_framework/atomscripting.html">Atom Scripting</a></strong> Base technology for use Groovy (potentional Scala, Jython..) as JME game scripting language…</p>
  800. <div class="ulist">
  801. <ul>
  802. <li>
  803. <p>Provide Test bed enviroment, thread-safe and intelligent Groovy swing component to extend the SDK in seconds</p>
  804. </li>
  805. <li>
  806. <p>More Buzz? <a href="../../jme3/advanced/atom_framework/atomscripting.html">Atom Scripting</a></p>
  807. </li>
  808. </ul>
  809. </div>
  810. </li>
  811. <li>
  812. <p><strong><a href="../../jme3/advanced/atom_framework/ai.html">Atom AI</a></strong> : a “framework to bring AI to jME3 game (also means real-time application)! But it&#8217;s awesome in its own way.</p>
  813. <div class="ulist">
  814. <ul>
  815. <li>
  816. <p>Focus in AI coding, creating, testing, simulating, profiling in 3d enviroments.</p>
  817. </li>
  818. <li>
  819. <p>Come with tools as SDK plugins!</p>
  820. </li>
  821. <li>
  822. <p>Check <a href="../../jme3/advanced/atom_framework/ai.html">Atom AI wiki</a> for more buzz</p>
  823. </li>
  824. </ul>
  825. </div>
  826. </li>
  827. </ul>
  828. </div>
  829. </div>
  830. <div class="sect3">
  831. <h4 id="ingame-editor-facilities-and-kits">Ingame editor facilities and kits</h4>
  832. <div class="ulist">
  833. <ul>
  834. <li>
  835. <p><a href="../../jme3/advanced/atom_framework/atomeditor.html">Atom Editor</a>: sotiphicated in-game editor application and <abbr title="Application Programming Interface">API</abbr> for 3D games modelled toward netbean platform architecture. [In constrast with SimpleGameEditor project].</p>
  836. </li>
  837. <li>
  838. <p><a href="../../jme3/advanced/atom_framework/atom2deditor.html">Atom 2D Editor</a>: for 2D games.</p>
  839. </li>
  840. <li>
  841. <p><strong><a href="../../jme3/advanced/atom_framework/codegen.html">Code Gen</a></strong>: a “framework that intend to become the base technologies for all generation related techs in the Atom framework. <a href="../../jme3/advanced/atom_framework/codegen.html">codegen</a></p>
  842. <div class="ulist">
  843. <ul>
  844. <li>
  845. <p>Focus in provide general and abstract way to modeling|design game|real-time app concept and object, source codes.</p>
  846. </li>
  847. <li>
  848. <p>Its first attempt to become a GLSL, Groovy generator, then become a Logic, source code generator…</p>
  849. </li>
  850. <li>
  851. <p>Come with tools as SDK plugins!</p>
  852. </li>
  853. </ul>
  854. </div>
  855. </li>
  856. <li>
  857. <p><strong><a href="../../jme3/advanced/atom_framework/citygen.html">City Gen</a></strong>: a “framework at first try to be a city generator, then grow up to be fullfill every geometric generating operations in 3D.</p>
  858. <div class="ulist">
  859. <ul>
  860. <li>
  861. <p>Focus in “Level generator with 3d models, blueprint and geometric shapes, such as dugeon, city, rivers, mountain, trees…</p>
  862. </li>
  863. <li>
  864. <p>Can corporate with Code gen and other geometric libs to become a generative 3D editor…</p>
  865. </li>
  866. <li>
  867. <p>Come with tools as SDK plugins!</p>
  868. </li>
  869. </ul>
  870. </div>
  871. </li>
  872. </ul>
  873. </div>
  874. </div>
  875. <div class="sect3">
  876. <h4 id="atom-sdk">Atom SDK</h4>
  877. <div class="ulist">
  878. <ul>
  879. <li>
  880. <p><strong>Atom SDK</strong> : Expansion for current functions and features of the jME SDK on top of Netbean platform for desktop Swing based editing, more intuitive more user friendly and suchs.</p>
  881. <div class="ulist">
  882. <ul>
  883. <li>
  884. <p>Full List? <a href="../../jme3/advanced/atom_framework/atomsdk.html">atomsdk</a></p>
  885. </li>
  886. </ul>
  887. </div>
  888. </li>
  889. <li>
  890. <p><strong>TeeheeComposer</strong> : Act as the base editor for video, cinematic, audio, effects, facial composer… anything require time-base keyframed or unlinear editing like sequences.</p>
  891. <div class="ulist">
  892. <ul>
  893. <li>
  894. <p>An almighty composer, think about 3DSMax or Adobe After Effect in 3D</p>
  895. </li>
  896. <li>
  897. <p>Come with a lot of tools for the SDK : <a href="../../jme3/advanced/atom_framework/teehee.html">teehee</a></p>
  898. <div class="ulist">
  899. <ul>
  900. <li>
  901. <p>Cinematic composer</p>
  902. </li>
  903. <li>
  904. <p>Dialogue composer</p>
  905. </li>
  906. <li>
  907. <p>Effect composer</p>
  908. </li>
  909. <li>
  910. <p>Particle composer</p>
  911. </li>
  912. <li>
  913. <p>Animation composer</p>
  914. </li>
  915. </ul>
  916. </div>
  917. </li>
  918. </ul>
  919. </div>
  920. </li>
  921. <li>
  922. <p><strong>RPGCreator</strong> : Despite of its name, its not just for Role playing game!</p>
  923. <div class="ulist">
  924. <ul>
  925. <li>
  926. <p>Provide functions to create| test| config basic game with these key elements : characters| stories| skills| items| modes| regions… almost every game genre has them embeded partly ( cross game genre)</p>
  927. </li>
  928. <li>
  929. <p>Come with tools as SDK plugins! <a href="../../jme3/advanced/atom_framework/rpgcreator.html">rpgcreator</a></p>
  930. </li>
  931. </ul>
  932. </div>
  933. </li>
  934. <li>
  935. <p><strong>Nextgen Tools</strong></p>
  936. <div class="ulist">
  937. <ul>
  938. <li>
  939. <p>Facial tools : Think FaceFX for JME :p <a href="../../jme3/advanced/atom_framework/facial.html">facial</a></p>
  940. </li>
  941. <li>
  942. <p>Character customization management tools : Smart way to organize and corporate your assets, config, database and code for CC <a href="../../jme3/advanced/atom_framework/cc.html">cc</a></p>
  943. </li>
  944. <li>
  945. <p>Vitural reality tools : Toolset for corporate vitural reality artifact in your app <a href="../../jme3/advanced/atom_framework/vr.html">vr</a></p>
  946. </li>
  947. <li>
  948. <p>MMORPG tools : Toolset for creating of a MMORPG game&#8217;s component and all its management structure. Epic! <a href="../../jme3/advanced/atom_framework/mmorpgtools.html">mmorpgtools</a></p>
  949. </li>
  950. <li>
  951. <p>Human Simulation tools: Think advanced locomotion and AI (like Mechanim of Unity) multiply 10. In fact, it&#8217;s quite similar with tool from Autodesk that simulations social beheviours of human characters. Epic! <a href="../../jme3/advanced/atom_framework/humansim.html">humansim</a></p>
  952. </li>
  953. </ul>
  954. </div>
  955. </li>
  956. </ul>
  957. </div>
  958. </div>
  959. <div class="sect3">
  960. <h4 id="atomex-libraries-and-platform">AtomEx Libraries and platform</h4>
  961. <div class="ulist">
  962. <ul>
  963. <li>
  964. <p><strong>Atom Ex</strong> : addition to Atom framework which make its much more modulizable, extensible and enterprise ready. Distributed computing, web based, database… much more.</p>
  965. <div class="ulist">
  966. <ul>
  967. <li>
  968. <p>More Buzz? <a href="../../jme3/advanced/atom_framework/atomex.html">AtomEx documentation</a></p>
  969. </li>
  970. </ul>
  971. </div>
  972. </li>
  973. </ul>
  974. </div>
  975. </div>
  976. </div>
  977. <div class="sect2">
  978. <h3 id="vision">Vision</h3>
  979. <div class="sect3">
  980. <h4 id="java-again">Java,&#8230;&#8203; again??!</h4>
  981. <div class="paragraph">
  982. <p>Yeah, it was long time ago, you quit learning java because java gaming is a dead end.</p>
  983. </div>
  984. <div class="paragraph">
  985. <p>But Android come to play, and the the market are open so freaking big that even companies live with their C++ code base want to take advantage of the new wave…</p>
  986. </div>
  987. <div class="paragraph">
  988. <p>Recently Java has so much improvements and then JME3 enchant the talents all around the world to develop the master peices of software!</p>
  989. </div>
  990. </div>
  991. <div class="sect3">
  992. <h4 id="but-did-we-chasing-after-them">But did we chasing after them?</h4>
  993. <div class="paragraph">
  994. <p>No, we are not. We are going ahead of them with all the techniques from the almightly open-source.</p>
  995. </div>
  996. <div class="paragraph">
  997. <p>Java communities are much more open and helpful than any of those Microsoft, Apple, UDK, Unity,… evils… Let&#8217;s make a fairplay at last!</p>
  998. </div>
  999. </div>
  1000. <div class="sect3">
  1001. <h4 id="can-we-win">Can we win?</h4>
  1002. <div class="paragraph">
  1003. <p>The time will tell… but at least, we once gain give the power to the hands of the people, not just some rich and intelligent people, that&#8217;s the most critical point!</p>
  1004. </div>
  1005. </div>
  1006. </div>
  1007. <div class="sect2">
  1008. <h3 id="project-status">Project status</h3>
  1009. <div class="paragraph">
  1010. <p>If you interest in contribute to Atom framework open-sourced project, here is the status of the project in 2014 and some mile stones it want to reach in the future.</p>
  1011. </div>
  1012. <div class="paragraph">
  1013. <p><a href="../../jme3/advanced/atom_framework/status.html">Atom framework open-sourced project Status - 2014</a></p>
  1014. </div>
  1015. </div>
  1016. <div class="sect2">
  1017. <h3 id="other-open-source-dependencies">Other open-source dependencies</h3>
  1018. <div class="paragraph">
  1019. <p>Actually it use directly/indirectly various projects of JME3 great contributors and open source projects:</p>
  1020. </div>
  1021. <div class="ulist">
  1022. <ul>
  1023. <li>
  1024. <p>AI from @Sploreg,@shirkit and mine</p>
  1025. </li>
  1026. <li>
  1027. <p>VirtualReallity integrated with OpenCV, JavaCV : @noncom + mine</p>
  1028. </li>
  1029. <li>
  1030. <p>ShaderBlow from @mifth</p>
  1031. </li>
  1032. <li>
  1033. <p>SpriteEngine @dansion</p>
  1034. </li>
  1035. <li>
  1036. <p>Forestor from @androlo</p>
  1037. </li>
  1038. <li>
  1039. <p>Multiplayer on top of MirrorMonkey, Kryonet, Arianne, ThreeRings, …</p>
  1040. </li>
  1041. <li>
  1042. <p>MonkeyZone code which I believe written by @normen @nehon and core guys :p</p>
  1043. </li>
  1044. <li>
  1045. <p>Database using Cayenne, Depot</p>
  1046. </li>
  1047. <li>
  1048. <p>… other contributors</p>
  1049. </li>
  1050. </ul>
  1051. </div>
  1052. <div class="paragraph">
  1053. <p>( I will add them later :p please forgive if I can&#8217;t remember your name immediately )
  1054. …</p>
  1055. </div>
  1056. <div class="paragraph">
  1057. <p><em>I want to thank all of you for you great great great contributions, help me and my friends here to start learning game programming and doing our own game. Salute! My job is to glue the those great gems together, (pretty time consuming job) :</em></p>
  1058. </div>
  1059. <div class="paragraph">
  1060. <p>As the spliting above, then I will make two different topic to keep them separate, the Atom framework and the Series of game making.</p>
  1061. </div>
  1062. <div class="paragraph">
  1063. <p><a href="../../jme3/atomixtuts.html">Atomix Series of game making</a></p>
  1064. </div>
  1065. <div class="paragraph">
  1066. <p>GOTO <a href="../../jme3/advanced/atom_framework/docs.html">Detailed Atom framework Documentation</a></p>
  1067. </div>
  1068. </div>
  1069. </div>
  1070. </div>
  1071. </div>
  1072. <div id="footer">
  1073. <div id="footer-text">
  1074. Version <br>
  1075. Last updated 2016-06-05 15:58:32 UTC
  1076. </div>
  1077. </div>
  1078. </body>
  1079. </html>