mirror of
https://github.com/KevinMidboe/linguist.git
synced 2025-10-29 17:50:22 +00:00
Compare commits
103 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
edabdc75a5 | ||
|
|
6db7736860 | ||
|
|
dd3d8586c5 | ||
|
|
f1daf6192c | ||
|
|
2c41df376f | ||
|
|
3391dcce6a | ||
|
|
f75c5707a6 | ||
|
|
25de4e0ae2 | ||
|
|
7451424f12 | ||
|
|
b94e018c3a | ||
|
|
4dcf223c8e | ||
|
|
329f80d245 | ||
|
|
085604948e | ||
|
|
e60384b018 | ||
|
|
470a82d9f5 | ||
|
|
37979b26b0 | ||
|
|
1a6df12902 | ||
|
|
24e196df4e | ||
|
|
8d178bfaed | ||
|
|
e9ec699931 | ||
|
|
9a6c3f2c4d | ||
|
|
648720301d | ||
|
|
c552e25bd7 | ||
|
|
d5c8db3fb9 | ||
|
|
632bcdc1ad | ||
|
|
6b221172c0 | ||
|
|
6f0d801375 | ||
|
|
128abe3533 | ||
|
|
9312353d20 | ||
|
|
b6460f8ed6 | ||
|
|
60f864a138 | ||
|
|
ca6121e3ea | ||
|
|
7c17b1f10c | ||
|
|
d490fc303f | ||
|
|
20fdac95f6 | ||
|
|
234ee8b6d2 | ||
|
|
58ab593a64 | ||
|
|
ec1f6a4cd6 | ||
|
|
3eea8212f4 | ||
|
|
a1e09ae3e6 | ||
|
|
c1f76c26e5 | ||
|
|
0983f62e02 | ||
|
|
190e54c020 | ||
|
|
ded651159d | ||
|
|
acbab53198 | ||
|
|
fba4babdcd | ||
|
|
eb6a213921 | ||
|
|
5e2c79e950 | ||
|
|
e93f41f097 | ||
|
|
994bc1f135 | ||
|
|
44f03e64c1 | ||
|
|
4166f2e89d | ||
|
|
1a8f19c6f2 | ||
|
|
c0e242358a | ||
|
|
eb38c8dcf8 | ||
|
|
f146b4afbd | ||
|
|
db15d0f5d2 | ||
|
|
e6d57c771d | ||
|
|
eef0335c5f | ||
|
|
461c27c066 | ||
|
|
59d67d6743 | ||
|
|
7aeeb82d3d | ||
|
|
c98ca20076 | ||
|
|
4e0b5f02aa | ||
|
|
8da7cb805e | ||
|
|
e5e81a8560 | ||
|
|
dd53fa1585 | ||
|
|
354a8f079a | ||
|
|
f38d6bd124 | ||
|
|
e80b92e407 | ||
|
|
fa6ae1116f | ||
|
|
b7e27a9f58 | ||
|
|
69ba4c5586 | ||
|
|
c39d7fd6e8 | ||
|
|
44ed47cea1 | ||
|
|
de51cb08d2 | ||
|
|
3dd2d08190 | ||
|
|
3b625e1954 | ||
|
|
5c6f690b97 | ||
|
|
3bbfc907f3 | ||
|
|
053b8bca97 | ||
|
|
7fb3db6203 | ||
|
|
ba09394f85 | ||
|
|
c59c88f16e | ||
|
|
8a6e74799a | ||
|
|
4268769d2e | ||
|
|
6601864084 | ||
|
|
d57aa37fb7 | ||
|
|
e72347fd98 | ||
|
|
1b429ea46b | ||
|
|
9468ad4947 | ||
|
|
733ef63193 | ||
|
|
9ca6a5841e | ||
|
|
41ace5fba0 | ||
|
|
cc4295b3b3 | ||
|
|
1e4ce80fd9 | ||
|
|
74a71fd90d | ||
|
|
9b08318456 | ||
|
|
fa5b6b03dc | ||
|
|
cb59296fe0 | ||
|
|
f1be771611 | ||
|
|
b66fcb2529 | ||
|
|
d58cbc68a6 |
70
.gitmodules
vendored
70
.gitmodules
vendored
@@ -67,9 +67,6 @@
|
||||
[submodule "vendor/grammars/language-javascript"]
|
||||
path = vendor/grammars/language-javascript
|
||||
url = https://github.com/atom/language-javascript
|
||||
[submodule "vendor/grammars/language-python"]
|
||||
path = vendor/grammars/language-python
|
||||
url = https://github.com/atom/language-python
|
||||
[submodule "vendor/grammars/language-shellscript"]
|
||||
path = vendor/grammars/language-shellscript
|
||||
url = https://github.com/atom/language-shellscript
|
||||
@@ -115,9 +112,6 @@
|
||||
[submodule "vendor/grammars/fancy-tmbundle"]
|
||||
path = vendor/grammars/fancy-tmbundle
|
||||
url = https://github.com/fancy-lang/fancy-tmbundle
|
||||
[submodule "vendor/grammars/dart-sublime-bundle"]
|
||||
path = vendor/grammars/dart-sublime-bundle
|
||||
url = https://github.com/guillermooo/dart-sublime-bundle
|
||||
[submodule "vendor/grammars/sublimetext-cuda-cpp"]
|
||||
path = vendor/grammars/sublimetext-cuda-cpp
|
||||
url = https://github.com/harrism/sublimetext-cuda-cpp
|
||||
@@ -177,7 +171,7 @@
|
||||
url = https://github.com/mokus0/Agda.tmbundle
|
||||
[submodule "vendor/grammars/Julia.tmbundle"]
|
||||
path = vendor/grammars/Julia.tmbundle
|
||||
url = https://github.com/nanoant/Julia.tmbundle
|
||||
url = https://github.com/JuliaEditorSupport/Julia.tmbundle
|
||||
[submodule "vendor/grammars/ooc.tmbundle"]
|
||||
path = vendor/grammars/ooc.tmbundle
|
||||
url = https://github.com/nilium/ooc.tmbundle
|
||||
@@ -390,7 +384,7 @@
|
||||
url = https://github.com/textmate/c.tmbundle
|
||||
[submodule "vendor/grammars/zephir-sublime"]
|
||||
path = vendor/grammars/zephir-sublime
|
||||
url = https://github.com/vmg/zephir-sublime
|
||||
url = https://github.com/phalcon/zephir-sublime
|
||||
[submodule "vendor/grammars/llvm.tmbundle"]
|
||||
path = vendor/grammars/llvm.tmbundle
|
||||
url = https://github.com/whitequark/llvm.tmbundle
|
||||
@@ -800,9 +794,6 @@
|
||||
[submodule "vendor/grammars/atom-language-perl6"]
|
||||
path = vendor/grammars/atom-language-perl6
|
||||
url = https://github.com/perl6/atom-language-perl6
|
||||
[submodule "vendor/grammars/reason"]
|
||||
path = vendor/grammars/reason
|
||||
url = https://github.com/facebook/reason
|
||||
[submodule "vendor/grammars/language-xcompose"]
|
||||
path = vendor/grammars/language-xcompose
|
||||
url = https://github.com/samcv/language-xcompose
|
||||
@@ -818,3 +809,60 @@
|
||||
[submodule "vendor/grammars/language-regexp"]
|
||||
path = vendor/grammars/language-regexp
|
||||
url = https://github.com/Alhadis/language-regexp
|
||||
[submodule "vendor/grammars/Terraform.tmLanguage"]
|
||||
path = vendor/grammars/Terraform.tmLanguage
|
||||
url = https://github.com/alexlouden/Terraform.tmLanguage
|
||||
[submodule "vendor/grammars/shaders-tmLanguage"]
|
||||
path = vendor/grammars/shaders-tmLanguage
|
||||
url = https://github.com/tgjones/shaders-tmLanguage
|
||||
[submodule "vendor/grammars/language-meson"]
|
||||
path = vendor/grammars/language-meson
|
||||
url = https://github.com/TingPing/language-meson
|
||||
[submodule "vendor/grammars/atom-language-p4"]
|
||||
path = vendor/grammars/atom-language-p4
|
||||
url = https://github.com/TakeshiTseng/atom-language-p4
|
||||
[submodule "vendor/grammars/language-jison"]
|
||||
path = vendor/grammars/language-jison
|
||||
url = https://github.com/cdibbs/language-jison
|
||||
[submodule "vendor/grammars/openscad.tmbundle"]
|
||||
path = vendor/grammars/openscad.tmbundle
|
||||
url = https://github.com/tbuser/openscad.tmbundle
|
||||
[submodule "vendor/grammars/marko-tmbundle"]
|
||||
path = vendor/grammars/marko-tmbundle
|
||||
url = https://github.com/marko-js/marko-tmbundle
|
||||
[submodule "vendor/grammars/language-jolie"]
|
||||
path = vendor/grammars/language-jolie
|
||||
url = https://github.com/fmontesi/language-jolie
|
||||
[submodule "vendor/grammars/language-typelanguage"]
|
||||
path = vendor/grammars/language-typelanguage
|
||||
url = https://github.com/goodmind/language-typelanguage
|
||||
[submodule "vendor/grammars/sublime-shen"]
|
||||
path = vendor/grammars/sublime-shen
|
||||
url = https://github.com/rkoeninger/sublime-shen
|
||||
[submodule "vendor/grammars/Sublime-Pep8"]
|
||||
path = vendor/grammars/Sublime-Pep8
|
||||
url = https://github.com/R4PaSs/Sublime-Pep8
|
||||
[submodule "vendor/grammars/dartlang"]
|
||||
path = vendor/grammars/dartlang
|
||||
url = https://github.com/dart-atom/dartlang
|
||||
[submodule "vendor/grammars/language-closure-templates"]
|
||||
path = vendor/grammars/language-closure-templates
|
||||
url = https://github.com/mthadley/language-closure-templates
|
||||
[submodule "vendor/grammars/language-webassembly"]
|
||||
path = vendor/grammars/language-webassembly
|
||||
url = https://github.com/Alhadis/language-webassembly
|
||||
[submodule "vendor/grammars/language-ring"]
|
||||
path = vendor/grammars/language-ring
|
||||
url = https://github.com/MahmoudFayed/atom-language-ring
|
||||
[submodule "vendor/grammars/sublime-fantom"]
|
||||
path = vendor/grammars/sublime-fantom
|
||||
url = https://github.com/rkoeninger/sublime-fantom
|
||||
[submodule "vendor/grammars/language-pan"]
|
||||
path = vendor/grammars/language-pan
|
||||
url = https://github.com/quattor/language-pan
|
||||
[submodule "vendor/grammars/language-pcb"]
|
||||
path = vendor/grammars/language-pcb
|
||||
url = https://github.com/Alhadis/language-pcb
|
||||
[submodule "vendor/grammars/language-reason"]
|
||||
path = vendor/grammars/language-reason
|
||||
url = https://github.com/reasonml-editor/language-reason
|
||||
|
||||
16
.travis.yml
16
.travis.yml
@@ -1,20 +1,34 @@
|
||||
language: ruby
|
||||
sudo: false
|
||||
|
||||
addons:
|
||||
apt:
|
||||
packages:
|
||||
- libicu-dev
|
||||
- libicu48
|
||||
|
||||
before_install: script/travis/before_install
|
||||
|
||||
script:
|
||||
- bundle exec rake
|
||||
- script/licensed verify
|
||||
|
||||
rvm:
|
||||
- 2.0.0
|
||||
- 2.1
|
||||
- 2.2
|
||||
- 2.3.3
|
||||
- 2.4.0
|
||||
|
||||
matrix:
|
||||
allow_failures:
|
||||
- rvm: 2.4.0
|
||||
|
||||
notifications:
|
||||
disabled: true
|
||||
|
||||
git:
|
||||
submodules: false
|
||||
depth: 3
|
||||
|
||||
cache: bundler
|
||||
dist: precise
|
||||
|
||||
@@ -10,15 +10,15 @@ We try only to add new extensions once they have some usage on GitHub. In most c
|
||||
|
||||
To add support for a new extension:
|
||||
|
||||
0. Add your extension to the language entry in [`languages.yml`][languages], keeping the extensions in alphabetical order.
|
||||
0. Add at least one sample for your extension to the [samples directory][samples] in the correct subdirectory.
|
||||
0. Open a pull request, linking to a [GitHub search result](https://github.com/search?utf8=%E2%9C%93&q=extension%3Aboot+NOT+nothack&type=Code&ref=searchresults) showing in-the-wild usage.
|
||||
1. Add your extension to the language entry in [`languages.yml`][languages], keeping the extensions in alphabetical order.
|
||||
1. Add at least one sample for your extension to the [samples directory][samples] in the correct subdirectory.
|
||||
1. Open a pull request, linking to a [GitHub search result](https://github.com/search?utf8=%E2%9C%93&q=extension%3Aboot+NOT+nothack&type=Code&ref=searchresults) showing in-the-wild usage.
|
||||
|
||||
In addition, if this extension is already listed in [`languages.yml`][languages] then sometimes a few more steps will need to be taken:
|
||||
|
||||
0. Make sure that example `.yourextension` files are present in the [samples directory][samples] for each language that uses `.yourextension`.
|
||||
0. Test the performance of the Bayesian classifier with a relatively large number (1000s) of sample `.yourextension` files. (ping **@bkeepers** to help with this) to ensure we're not misclassifying files.
|
||||
0. If the Bayesian classifier does a bad job with the sample `.yourextension` files then a [heuristic](https://github.com/github/linguist/blob/master/lib/linguist/heuristics.rb) may need to be written to help.
|
||||
1. Make sure that example `.yourextension` files are present in the [samples directory][samples] for each language that uses `.yourextension`.
|
||||
1. Test the performance of the Bayesian classifier with a relatively large number (1000s) of sample `.yourextension` files. (ping **@bkeepers** to help with this) to ensure we're not misclassifying files.
|
||||
1. If the Bayesian classifier does a bad job with the sample `.yourextension` files then a [heuristic](https://github.com/github/linguist/blob/master/lib/linguist/heuristics.rb) may need to be written to help.
|
||||
|
||||
|
||||
## Adding a language
|
||||
@@ -27,17 +27,17 @@ We try only to add languages once they have some usage on GitHub. In most cases
|
||||
|
||||
To add support for a new language:
|
||||
|
||||
0. Add an entry for your language to [`languages.yml`][languages]. Omit the `language_id` field for now.
|
||||
0. Add a grammar for your language: `script/add-grammar https://github.com/JaneSmith/MyGrammar`. Please only add grammars that have [one of these licenses][licenses].
|
||||
0. Add samples for your language to the [samples directory][samples] in the correct subdirectory.
|
||||
0. Add a `language_id` for your language using `script/set-language-ids`. **You should only ever need to run `script/set-language-ids --update`. Anything other than this risks breaking GitHub search :cry:**
|
||||
0. Open a pull request, linking to a [GitHub search result](https://github.com/search?utf8=%E2%9C%93&q=extension%3Aboot+NOT+nothack&type=Code&ref=searchresults) showing in-the-wild usage.
|
||||
1. Add an entry for your language to [`languages.yml`][languages]. Omit the `language_id` field for now.
|
||||
1. Add a grammar for your language: `script/add-grammar https://github.com/JaneSmith/MyGrammar`. Please only add grammars that have [one of these licenses][licenses].
|
||||
1. Add samples for your language to the [samples directory][samples] in the correct subdirectory.
|
||||
1. Add a `language_id` for your language using `script/set-language-ids`. **You should only ever need to run `script/set-language-ids --update`. Anything other than this risks breaking GitHub search :cry:**
|
||||
1. Open a pull request, linking to a [GitHub search result](https://github.com/search?utf8=%E2%9C%93&q=extension%3Aboot+NOT+nothack&type=Code&ref=searchresults) showing in-the-wild usage.
|
||||
|
||||
In addition, if your new language defines an extension that's already listed in [`languages.yml`][languages] (such as `.foo`) then sometimes a few more steps will need to be taken:
|
||||
|
||||
0. Make sure that example `.foo` files are present in the [samples directory][samples] for each language that uses `.foo`.
|
||||
0. Test the performance of the Bayesian classifier with a relatively large number (1000s) of sample `.foo` files. (ping **@bkeepers** to help with this) to ensure we're not misclassifying files.
|
||||
0. If the Bayesian classifier does a bad job with the sample `.foo` files then a [heuristic](https://github.com/github/linguist/blob/master/lib/linguist/heuristics.rb) may need to be written to help.
|
||||
1. Make sure that example `.foo` files are present in the [samples directory][samples] for each language that uses `.foo`.
|
||||
1. Test the performance of the Bayesian classifier with a relatively large number (1000s) of sample `.foo` files. (ping **@bkeepers** to help with this) to ensure we're not misclassifying files.
|
||||
1. If the Bayesian classifier does a bad job with the sample `.foo` files then a [heuristic](https://github.com/github/linguist/blob/master/lib/linguist/heuristics.rb) may need to be written to help.
|
||||
|
||||
Remember, the goal here is to try and avoid false positives!
|
||||
|
||||
@@ -67,6 +67,16 @@ For development you are going to want to checkout out the source. To get it, clo
|
||||
cd linguist/
|
||||
script/bootstrap
|
||||
|
||||
To run Linguist from the cloned repository, you will need to generate the code samples first:
|
||||
|
||||
bundle exec rake samples
|
||||
|
||||
Run this command each time a [sample][samples] has been modified.
|
||||
|
||||
To run Linguist from the cloned repository:
|
||||
|
||||
bundle exec bin/linguist --breakdown
|
||||
|
||||
To run the tests:
|
||||
|
||||
bundle exec rake test
|
||||
@@ -80,12 +90,14 @@ Here's our current build status: [
|
||||
- **@BenEddy** (GitHub staff)
|
||||
- **@Caged** (GitHub staff)
|
||||
- **@grantr** (GitHub staff)
|
||||
- **@larsbrinkhoff**
|
||||
- **@lildude** (GitHub staff)
|
||||
- **@lizzhale** (GitHub staff)
|
||||
- **@mikemcquaid** (GitHub staff)
|
||||
- **@pchaigno**
|
||||
- **@rafer** (GitHub staff)
|
||||
- **@shreyasjoshis** (GitHub staff)
|
||||
|
||||
As Linguist is a production dependency for GitHub we have a couple of workflow restrictions:
|
||||
|
||||
@@ -96,21 +108,21 @@ As Linguist is a production dependency for GitHub we have a couple of workflow r
|
||||
|
||||
If you are the current maintainer of this gem:
|
||||
|
||||
0. Create a branch for the release: `git checkout -b cut-release-vxx.xx.xx`
|
||||
0. Make sure your local dependencies are up to date: `script/bootstrap`
|
||||
0. If grammar submodules have not been updated recently, update them: `git submodule update --remote && git commit -a`
|
||||
0. Ensure that samples are updated: `bundle exec rake samples`
|
||||
0. Ensure that tests are green: `bundle exec rake test`
|
||||
0. Bump gem version in `lib/linguist/version.rb`, [like this](https://github.com/github/linguist/commit/8d2ea90a5ba3b2fe6e1508b7155aa4632eea2985).
|
||||
0. Make a PR to github/linguist, [like this](https://github.com/github/linguist/pull/1238).
|
||||
0. Build a local gem: `bundle exec rake build_gem`
|
||||
0. Test the gem:
|
||||
0. Bump the Gemfile and Gemfile.lock versions for an app which relies on this gem
|
||||
0. Install the new gem locally
|
||||
0. Test behavior locally, branch deploy, whatever needs to happen
|
||||
0. Merge github/linguist PR
|
||||
0. Tag and push: `git tag vx.xx.xx; git push --tags`
|
||||
0. Push to rubygems.org -- `gem push github-linguist-3.0.0.gem`
|
||||
1. Create a branch for the release: `git checkout -b cut-release-vxx.xx.xx`
|
||||
1. Make sure your local dependencies are up to date: `script/bootstrap`
|
||||
1. If grammar submodules have not been updated recently, update them: `git submodule update --remote && git commit -a`
|
||||
1. Ensure that samples are updated: `bundle exec rake samples`
|
||||
1. Ensure that tests are green: `bundle exec rake test`
|
||||
1. Bump gem version in `lib/linguist/version.rb`, [like this](https://github.com/github/linguist/commit/8d2ea90a5ba3b2fe6e1508b7155aa4632eea2985).
|
||||
1. Make a PR to github/linguist, [like this](https://github.com/github/linguist/pull/1238).
|
||||
1. Build a local gem: `bundle exec rake build_gem`
|
||||
1. Test the gem:
|
||||
1. Bump the Gemfile and Gemfile.lock versions for an app which relies on this gem
|
||||
1. Install the new gem locally
|
||||
1. Test behavior locally, branch deploy, whatever needs to happen
|
||||
1. Merge github/linguist PR
|
||||
1. Tag and push: `git tag vx.xx.xx; git push --tags`
|
||||
1. Push to rubygems.org -- `gem push github-linguist-3.0.0.gem`
|
||||
|
||||
[grammars]: /grammars.yml
|
||||
[languages]: /lib/linguist/languages.yml
|
||||
|
||||
25
README.md
25
README.md
@@ -15,10 +15,10 @@ See [Troubleshooting](#troubleshooting) and [`CONTRIBUTING.md`](/CONTRIBUTING.md
|
||||
|
||||
The Language stats bar displays languages percentages for the files in the repository. The percentages are calculated based on the bytes of code for each language as reported by the [List Languages](https://developer.github.com/v3/repos/#list-languages) API. If the bar is reporting a language that you don't expect:
|
||||
|
||||
0. Click on the name of the language in the stats bar to see a list of the files that are identified as that language.
|
||||
0. If you see files that you didn't write, consider moving the files into one of the [paths for vendored code](/lib/linguist/vendor.yml), or use the [manual overrides](#overrides) feature to ignore them.
|
||||
0. If the files are being misclassified, search for [open issues][issues] to see if anyone else has already reported the issue. Any information you can add, especially links to public repositories, is helpful.
|
||||
0. If there are no reported issues of this misclassification, [open an issue][new-issue] and include a link to the repository or a sample of the code that is being misclassified.
|
||||
1. Click on the name of the language in the stats bar to see a list of the files that are identified as that language.
|
||||
1. If you see files that you didn't write, consider moving the files into one of the [paths for vendored code](/lib/linguist/vendor.yml), or use the [manual overrides](#overrides) feature to ignore them.
|
||||
1. If the files are being misclassified, search for [open issues][issues] to see if anyone else has already reported the issue. Any information you can add, especially links to public repositories, is helpful.
|
||||
1. If there are no reported issues of this misclassification, [open an issue][new-issue] and include a link to the repository or a sample of the code that is being misclassified.
|
||||
|
||||
### There's a problem with the syntax highlighting of a file
|
||||
|
||||
@@ -32,13 +32,15 @@ Linguist supports a number of different custom overrides strategies for language
|
||||
|
||||
### Using gitattributes
|
||||
|
||||
Add a `.gitattributes` file to your project and use standard git-style path matchers for the files you want to override to set `linguist-documentation`, `linguist-language`, and `linguist-vendored`. `.gitattributes` will be used to determine language statistics, but will not be used to syntax highlight files. To manually set syntax highlighting, use [Vim or Emacs modelines](#using-emacs-or-vim-modelines).
|
||||
Add a `.gitattributes` file to your project and use standard git-style path matchers for the files you want to override to set `linguist-documentation`, `linguist-language`, `linguist-vendored`, and `linguist-generated`. `.gitattributes` will be used to determine language statistics and will be used to syntax highlight files. You can also manually set syntax highlighting using [Vim or Emacs modelines](#using-emacs-or-vim-modelines).
|
||||
|
||||
```
|
||||
$ cat .gitattributes
|
||||
*.rb linguist-language=Java
|
||||
```
|
||||
|
||||
#### Vendored code
|
||||
|
||||
Checking code you didn't write, such as JavaScript libraries, into your git repo is a common practice, but this often inflates your project's language stats and may even cause your project to be labeled as another language. By default, Linguist treats all of the paths defined in [lib/linguist/vendor.yml](https://github.com/github/linguist/blob/master/lib/linguist/vendor.yml) as vendored and therefore doesn't include them in the language statistics for a repository.
|
||||
|
||||
Use the `linguist-vendored` attribute to vendor or un-vendor paths.
|
||||
@@ -49,6 +51,8 @@ special-vendored-path/* linguist-vendored
|
||||
jquery.js linguist-vendored=false
|
||||
```
|
||||
|
||||
#### Documentation
|
||||
|
||||
Just like vendored files, Linguist excludes documentation files from your project's language stats. [lib/linguist/documentation.yml](lib/linguist/documentation.yml) lists common documentation paths and excludes them from the language statistics for your repository.
|
||||
|
||||
Use the `linguist-documentation` attribute to mark or unmark paths as documentation.
|
||||
@@ -59,19 +63,18 @@ project-docs/* linguist-documentation
|
||||
docs/formatter.rb linguist-documentation=false
|
||||
```
|
||||
|
||||
#### Generated file detection
|
||||
#### Generated code
|
||||
|
||||
Not all plain text files are true source files. Generated files like minified js and compiled CoffeeScript can be detected and excluded from language stats. As an added bonus, unlike vendored and documentation files, these files are suppressed in diffs.
|
||||
|
||||
```ruby
|
||||
Linguist::FileBlob.new("underscore.min.js").generated? # => true
|
||||
```
|
||||
|
||||
See [Linguist::Generated#generated?](https://github.com/github/linguist/blob/master/lib/linguist/generated.rb).
|
||||
$ cat .gitattributes
|
||||
Api.elm linguist-generated=true
|
||||
```
|
||||
|
||||
### Using Emacs or Vim modelines
|
||||
|
||||
Alternatively, you can use Vim or Emacs style modelines to set the language for a single file. Modelines can be placed anywhere within a file and are respected when determining how to syntax-highlight a file on GitHub.com
|
||||
If you do not want to use `.gitattributes` to override the syntax highlighting used on GitHub.com, you can use Vim or Emacs style modelines to set the language for a single file. Modelines can be placed anywhere within a file and are respected when determining how to syntax-highlight a file on GitHub.com
|
||||
|
||||
##### Vim
|
||||
```
|
||||
|
||||
1
Rakefile
1
Rakefile
@@ -4,6 +4,7 @@ require 'rake/testtask'
|
||||
require 'yaml'
|
||||
require 'yajl'
|
||||
require 'open-uri'
|
||||
require 'json'
|
||||
|
||||
task :default => :test
|
||||
|
||||
|
||||
@@ -75,7 +75,7 @@ elsif File.file?(path)
|
||||
else
|
||||
abort <<-HELP
|
||||
Linguist v#{Linguist::VERSION}
|
||||
Detect language type for a file, or, given a directory, determine language breakdown.
|
||||
Detect language type for a file, or, given a repository, determine language breakdown.
|
||||
|
||||
Usage: linguist <path>
|
||||
linguist <path> [--breakdown] [--json]
|
||||
|
||||
@@ -26,5 +26,5 @@ Gem::Specification.new do |s|
|
||||
s.add_development_dependency 'yajl-ruby'
|
||||
s.add_development_dependency 'color-proximity', '~> 0.2.1'
|
||||
s.add_development_dependency 'licensed'
|
||||
s.add_development_dependency 'licensee', '>= 8.6.0'
|
||||
s.add_development_dependency 'licensee', '~> 8.8.0'
|
||||
end
|
||||
|
||||
63
grammars.yml
63
grammars.yml
@@ -56,6 +56,8 @@ vendor/grammars/MQL5-sublime:
|
||||
vendor/grammars/MagicPython:
|
||||
- source.python
|
||||
- source.regexp.python
|
||||
- text.python.console
|
||||
- text.python.traceback
|
||||
vendor/grammars/Modelica:
|
||||
- source.modelica
|
||||
vendor/grammars/NSIS:
|
||||
@@ -98,6 +100,8 @@ vendor/grammars/Sublime-Modula-2:
|
||||
- source.modula2
|
||||
vendor/grammars/Sublime-Nit:
|
||||
- source.nit
|
||||
vendor/grammars/Sublime-Pep8/:
|
||||
- source.pep8
|
||||
vendor/grammars/Sublime-QML:
|
||||
- source.qml
|
||||
vendor/grammars/Sublime-REBOL:
|
||||
@@ -130,6 +134,8 @@ vendor/grammars/TLA:
|
||||
- source.tla
|
||||
vendor/grammars/TXL:
|
||||
- source.txl
|
||||
vendor/grammars/Terraform.tmLanguage:
|
||||
- source.terraform
|
||||
vendor/grammars/Textmate-Gosu-Bundle:
|
||||
- source.gosu.2
|
||||
vendor/grammars/UrWeb-Language-Definition:
|
||||
@@ -180,6 +186,9 @@ vendor/grammars/atom-language-1c-bsl:
|
||||
- source.sdbl
|
||||
vendor/grammars/atom-language-clean:
|
||||
- source.clean
|
||||
- text.restructuredtext.clean
|
||||
vendor/grammars/atom-language-p4:
|
||||
- source.p4
|
||||
vendor/grammars/atom-language-perl6:
|
||||
- source.meta-info
|
||||
- source.perl6fe
|
||||
@@ -220,7 +229,6 @@ vendor/grammars/capnproto.tmbundle:
|
||||
vendor/grammars/carto-atom:
|
||||
- source.css.mss
|
||||
vendor/grammars/ceylon-sublimetext:
|
||||
- module.ceylon
|
||||
- source.ceylon
|
||||
vendor/grammars/chapel-tmbundle:
|
||||
- source.chapel
|
||||
@@ -241,11 +249,9 @@ vendor/grammars/cython:
|
||||
- source.cython
|
||||
vendor/grammars/d.tmbundle:
|
||||
- source.d
|
||||
vendor/grammars/dart-sublime-bundle:
|
||||
vendor/grammars/dartlang:
|
||||
- source.dart
|
||||
- source.pubspec
|
||||
- text.dart-analysis-output
|
||||
- text.dart-doccomments
|
||||
- source.yaml-ext
|
||||
vendor/grammars/desktop.tmbundle:
|
||||
- source.desktop
|
||||
vendor/grammars/diff.tmbundle:
|
||||
@@ -352,6 +358,8 @@ vendor/grammars/language-click:
|
||||
- source.click
|
||||
vendor/grammars/language-clojure:
|
||||
- source.clojure
|
||||
vendor/grammars/language-closure-templates:
|
||||
- text.html.soy
|
||||
vendor/grammars/language-coffee-script:
|
||||
- source.coffee
|
||||
- source.litcoffee
|
||||
@@ -372,6 +380,7 @@ vendor/grammars/language-css:
|
||||
vendor/grammars/language-emacs-lisp:
|
||||
- source.emacs.lisp
|
||||
vendor/grammars/language-fontforge:
|
||||
- source.afm
|
||||
- source.fontforge
|
||||
- source.opentype
|
||||
- text.sfd
|
||||
@@ -399,6 +408,13 @@ vendor/grammars/language-javascript:
|
||||
- source.js
|
||||
- source.js.regexp
|
||||
- source.js.regexp.replacement
|
||||
- source.jsdoc
|
||||
vendor/grammars/language-jison:
|
||||
- source.jison
|
||||
- source.jisonlex
|
||||
- source.jisonlex-injection
|
||||
vendor/grammars/language-jolie:
|
||||
- source.jolie
|
||||
vendor/grammars/language-jsoniq:
|
||||
- source.jq
|
||||
- source.xq
|
||||
@@ -406,24 +422,36 @@ vendor/grammars/language-less:
|
||||
- source.css.less
|
||||
vendor/grammars/language-maxscript:
|
||||
- source.maxscript
|
||||
vendor/grammars/language-meson:
|
||||
- source.meson
|
||||
vendor/grammars/language-ncl:
|
||||
- source.ncl
|
||||
vendor/grammars/language-ninja:
|
||||
- source.ninja
|
||||
vendor/grammars/language-pan:
|
||||
- source.pan
|
||||
vendor/grammars/language-pcb:
|
||||
- source.gerber
|
||||
- source.pcb.board
|
||||
- source.pcb.schematic
|
||||
- source.pcb.sexp
|
||||
vendor/grammars/language-povray:
|
||||
- source.pov-ray sdl
|
||||
vendor/grammars/language-python:
|
||||
- text.python.console
|
||||
- text.python.traceback
|
||||
vendor/grammars/language-reason:
|
||||
- source.reason
|
||||
- source.reason.hover.type
|
||||
vendor/grammars/language-regexp:
|
||||
- source.regexp
|
||||
- source.regexp.comment
|
||||
- source.regexp.extended
|
||||
vendor/grammars/language-renpy:
|
||||
- source.renpy
|
||||
vendor/grammars/language-restructuredtext:
|
||||
- text.restructuredtext
|
||||
vendor/grammars/language-ring:
|
||||
- source.ring
|
||||
vendor/grammars/language-roff:
|
||||
- source.ditroff
|
||||
- source.ditroff.desc
|
||||
- source.ideal
|
||||
- source.pic
|
||||
- text.roff
|
||||
@@ -440,11 +468,15 @@ vendor/grammars/language-toc-wow:
|
||||
- source.toc
|
||||
vendor/grammars/language-turing:
|
||||
- source.turing
|
||||
vendor/grammars/language-typelanguage:
|
||||
- source.tl
|
||||
vendor/grammars/language-viml:
|
||||
- source.viml
|
||||
vendor/grammars/language-wavefront:
|
||||
- source.wavefront.mtl
|
||||
- source.wavefront.obj
|
||||
vendor/grammars/language-webassembly:
|
||||
- source.webassembly
|
||||
vendor/grammars/language-xbase:
|
||||
- source.harbour
|
||||
vendor/grammars/language-xcompose:
|
||||
@@ -478,6 +510,8 @@ vendor/grammars/make.tmbundle:
|
||||
- source.makefile
|
||||
vendor/grammars/mako-tmbundle:
|
||||
- text.html.mako
|
||||
vendor/grammars/marko-tmbundle:
|
||||
- text.marko
|
||||
vendor/grammars/mathematica-tmbundle:
|
||||
- source.mathematica
|
||||
vendor/grammars/matlab.tmbundle:
|
||||
@@ -515,6 +549,8 @@ vendor/grammars/ooc.tmbundle:
|
||||
- source.ooc
|
||||
vendor/grammars/opa.tmbundle:
|
||||
- source.opa
|
||||
vendor/grammars/openscad.tmbundle:
|
||||
- source.scad
|
||||
vendor/grammars/oz-tmbundle/Syntaxes/Oz.tmLanguage:
|
||||
- source.oz
|
||||
vendor/grammars/parrot:
|
||||
@@ -550,8 +586,6 @@ vendor/grammars/r.tmbundle:
|
||||
- text.tex.latex.rd
|
||||
vendor/grammars/rascal-syntax-highlighting:
|
||||
- source.rascal
|
||||
vendor/grammars/reason:
|
||||
- source.reason
|
||||
vendor/grammars/ruby-slim.tmbundle:
|
||||
- text.slim
|
||||
vendor/grammars/ruby.tmbundle:
|
||||
@@ -571,6 +605,9 @@ vendor/grammars/scilab.tmbundle:
|
||||
- source.scilab
|
||||
vendor/grammars/secondlife-lsl:
|
||||
- source.lsl
|
||||
vendor/grammars/shaders-tmLanguage:
|
||||
- source.hlsl
|
||||
- source.shaderlab
|
||||
vendor/grammars/smali-sublime:
|
||||
- source.smali
|
||||
vendor/grammars/smalltalk-tmbundle:
|
||||
@@ -598,6 +635,8 @@ vendor/grammars/sublime-cirru:
|
||||
- source.cirru
|
||||
vendor/grammars/sublime-clips:
|
||||
- source.clips
|
||||
vendor/grammars/sublime-fantom:
|
||||
- source.fan
|
||||
vendor/grammars/sublime-glsl:
|
||||
- source.essl
|
||||
- source.glsl
|
||||
@@ -619,6 +658,8 @@ vendor/grammars/sublime-rexx:
|
||||
- source.rexx
|
||||
vendor/grammars/sublime-robot-plugin:
|
||||
- text.robot
|
||||
vendor/grammars/sublime-shen:
|
||||
- source.shen
|
||||
vendor/grammars/sublime-spintools:
|
||||
- source.regexp.spin
|
||||
- source.spin
|
||||
|
||||
@@ -15,9 +15,9 @@ class << Linguist
|
||||
# see Linguist::LazyBlob and Linguist::FileBlob for examples
|
||||
#
|
||||
# Returns Language or nil.
|
||||
def detect(blob)
|
||||
def detect(blob, allow_empty: false)
|
||||
# Bail early if the blob is binary or empty.
|
||||
return nil if blob.likely_binary? || blob.binary? || blob.empty?
|
||||
return nil if blob.likely_binary? || blob.binary? || (!allow_empty && blob.empty?)
|
||||
|
||||
Linguist.instrument("linguist.detection", :blob => blob) do
|
||||
# Call each strategy until one candidate is returned.
|
||||
@@ -74,7 +74,7 @@ class << Linguist
|
||||
# end
|
||||
# end
|
||||
#
|
||||
# Linguist.instrumenter = CustomInstrumenter
|
||||
# Linguist.instrumenter = CustomInstrumenter.new
|
||||
#
|
||||
# The instrumenter must conform to the `ActiveSupport::Notifications`
|
||||
# interface, which defines `#instrument` and accepts:
|
||||
|
||||
@@ -9,11 +9,12 @@
|
||||
|
||||
## Documentation directories ##
|
||||
|
||||
- ^docs?/
|
||||
- ^[Dd]ocs?/
|
||||
- (^|/)[Dd]ocumentation/
|
||||
- (^|/)javadoc/
|
||||
- ^man/
|
||||
- (^|/)[Jj]avadoc/
|
||||
- ^[Mm]an/
|
||||
- ^[Ee]xamples/
|
||||
- ^[Dd]emos?/
|
||||
|
||||
## Documentation files ##
|
||||
|
||||
@@ -27,4 +28,4 @@
|
||||
- (^|/)[Rr]eadme(\.|$)
|
||||
|
||||
# Samples folders
|
||||
- ^[Ss]amples/
|
||||
- ^[Ss]amples?/
|
||||
|
||||
@@ -57,7 +57,7 @@ module Linguist
|
||||
composer_lock? ||
|
||||
node_modules? ||
|
||||
go_vendor? ||
|
||||
npm_shrinkwrap? ||
|
||||
npm_shrinkwrap_or_package_lock? ||
|
||||
godeps? ||
|
||||
generated_by_zephir? ||
|
||||
minified_files? ||
|
||||
@@ -81,7 +81,8 @@ module Linguist
|
||||
generated_grammarkit? ||
|
||||
generated_roxygen2? ||
|
||||
generated_jison? ||
|
||||
generated_yarn_lock?
|
||||
generated_yarn_lock? ||
|
||||
generated_grpc_cpp?
|
||||
end
|
||||
|
||||
# Internal: Is the blob an Xcode file?
|
||||
@@ -243,7 +244,11 @@ module Linguist
|
||||
#
|
||||
# Returns true or false.
|
||||
def generated_postscript?
|
||||
return false unless ['.ps', '.eps'].include? extname
|
||||
return false unless ['.ps', '.eps', '.pfa'].include? extname
|
||||
|
||||
# Type 1 and Type 42 fonts converted to PostScript are stored as hex-encoded byte streams; these
|
||||
# streams are always preceded the `eexec` operator (if Type 1), or the `/sfnts` key (if Type 42).
|
||||
return true if data =~ /(\n|\r\n|\r)\s*(?:currentfile eexec\s+|\/sfnts\s+\[\1<)\h{8,}\1/
|
||||
|
||||
# We analyze the "%%Creator:" comment, which contains the author/generator
|
||||
# of the file. If there is one, it should be in one of the first few lines.
|
||||
@@ -253,10 +258,12 @@ module Linguist
|
||||
# Most generators write their version number, while human authors' or companies'
|
||||
# names don't contain numbers. So look if the line contains digits. Also
|
||||
# look for some special cases without version numbers.
|
||||
return creator =~ /[0-9]/ ||
|
||||
creator.include?("mpage") ||
|
||||
creator.include?("draw") ||
|
||||
creator.include?("ImageMagick")
|
||||
return true if creator =~ /[0-9]|draw|mpage|ImageMagick|inkscape|MATLAB/ ||
|
||||
creator =~ /PCBNEW|pnmtops|\(Unknown\)|Serif Affinity|Filterimage -tops/
|
||||
|
||||
# EAGLE doesn't include a version number when it generates PostScript.
|
||||
# However, it does prepend its name to the document's "%%Title" field.
|
||||
!!creator.include?("EAGLE") and lines[0..4].find {|line| line =~ /^%%Title: EAGLE Drawing /}
|
||||
end
|
||||
|
||||
def generated_go?
|
||||
@@ -326,11 +333,11 @@ module Linguist
|
||||
!!name.match(/vendor\/((?!-)[-0-9A-Za-z]+(?<!-)\.)+(com|edu|gov|in|me|net|org|fm|io)/)
|
||||
end
|
||||
|
||||
# Internal: Is the blob a generated npm shrinkwrap file?
|
||||
# Internal: Is the blob a generated npm shrinkwrap or package lock file?
|
||||
#
|
||||
# Returns true or false.
|
||||
def npm_shrinkwrap?
|
||||
!!name.match(/npm-shrinkwrap\.json/)
|
||||
def npm_shrinkwrap_or_package_lock?
|
||||
name.match(/npm-shrinkwrap\.json/) || name.match(/package-lock\.json/)
|
||||
end
|
||||
|
||||
# Internal: Is the blob part of Godeps/,
|
||||
@@ -489,5 +496,18 @@ module Linguist
|
||||
return false unless lines.count > 0
|
||||
return lines[0].include?("# THIS IS AN AUTOGENERATED FILE")
|
||||
end
|
||||
|
||||
# Internal: Is this a protobuf/grpc-generated C++ file?
|
||||
#
|
||||
# A generated file contains:
|
||||
# // Generated by the gRPC C++ plugin.
|
||||
# on the first line.
|
||||
#
|
||||
# Return true or false
|
||||
def generated_grpc_cpp?
|
||||
return false unless %w{.cpp .hpp .h .cc}.include? extname
|
||||
return false unless lines.count > 1
|
||||
return lines[0].start_with?("// Generated by the gRPC")
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
@@ -17,9 +17,8 @@ module Linguist
|
||||
data = blob.data
|
||||
|
||||
@heuristics.each do |heuristic|
|
||||
if heuristic.matches?(blob.name)
|
||||
languages = Array(heuristic.call(data))
|
||||
return languages if languages.any? || languages.all? { |l| candidates.include?(l) }
|
||||
if heuristic.matches?(blob.name, candidates)
|
||||
return Array(heuristic.call(data))
|
||||
end
|
||||
end
|
||||
|
||||
@@ -28,7 +27,8 @@ module Linguist
|
||||
|
||||
# Internal: Define a new heuristic.
|
||||
#
|
||||
# languages - String names of languages to disambiguate.
|
||||
# exts_and_langs - String names of file extensions and languages to
|
||||
# disambiguate.
|
||||
# heuristic - Block which takes data as an argument and returns a Language or nil.
|
||||
#
|
||||
# Examples
|
||||
@@ -41,23 +41,28 @@ module Linguist
|
||||
# end
|
||||
# end
|
||||
#
|
||||
def self.disambiguate(*extensions, &heuristic)
|
||||
@heuristics << new(extensions, &heuristic)
|
||||
def self.disambiguate(*exts_and_langs, &heuristic)
|
||||
@heuristics << new(exts_and_langs, &heuristic)
|
||||
end
|
||||
|
||||
# Internal: Array of defined heuristics
|
||||
@heuristics = []
|
||||
|
||||
# Internal
|
||||
def initialize(extensions, &heuristic)
|
||||
@extensions = extensions
|
||||
def initialize(exts_and_langs, &heuristic)
|
||||
@exts_and_langs, @candidates = exts_and_langs.partition {|e| e =~ /\A\./}
|
||||
@heuristic = heuristic
|
||||
end
|
||||
|
||||
# Internal: Check if this heuristic matches the candidate languages.
|
||||
def matches?(filename)
|
||||
# Internal: Check if this heuristic matches the candidate filenames or
|
||||
# languages.
|
||||
def matches?(filename, candidates)
|
||||
filename = filename.downcase
|
||||
@extensions.any? { |ext| filename.end_with?(ext) }
|
||||
candidates = candidates.compact.map(&:name)
|
||||
@exts_and_langs.any? { |ext| filename.end_with?(ext) } ||
|
||||
(candidates.any? &&
|
||||
(@candidates - candidates == [] &&
|
||||
candidates - @candidates == []))
|
||||
end
|
||||
|
||||
# Internal: Perform the heuristic
|
||||
@@ -125,11 +130,18 @@ module Linguist
|
||||
end
|
||||
|
||||
disambiguate ".d" do |data|
|
||||
if /^module /.match(data)
|
||||
# see http://dlang.org/spec/grammar
|
||||
# ModuleDeclaration | ImportDeclaration | FuncDeclaration | unittest
|
||||
if /^module\s+[\w.]*\s*;|import\s+[\w\s,.:]*;|\w+\s+\w+\s*\(.*\)(?:\(.*\))?\s*{[^}]*}|unittest\s*(?:\(.*\))?\s*{[^}]*}/.match(data)
|
||||
Language["D"]
|
||||
elsif /^((dtrace:::)?BEGIN|provider |#pragma (D (option|attributes)|ident)\s)/.match(data)
|
||||
# see http://dtrace.org/guide/chp-prog.html, http://dtrace.org/guide/chp-profile.html, http://dtrace.org/guide/chp-opt.html
|
||||
elsif /^(\w+:\w*:\w*:\w*|BEGIN|END|provider\s+|(tick|profile)-\w+\s+{[^}]*}|#pragma\s+D\s+(option|attributes|depends_on)\s|#pragma\s+ident\s)/.match(data)
|
||||
Language["DTrace"]
|
||||
elsif /(\/.*:( .* \\)$| : \\$|^ : |: \\$)/.match(data)
|
||||
# path/target : dependency \
|
||||
# target : \
|
||||
# : dependency
|
||||
# path/file.ext1 : some/path/../file.ext2
|
||||
elsif /([\/\\].*:\s+.*\s\\$|: \\$|^ : |^[\w\s\/\\.]+\w+\.\w+\s*:\s+[\w\s\/\\.]+\w+\.\w+)/.match(data)
|
||||
Language["Makefile"]
|
||||
end
|
||||
end
|
||||
@@ -158,7 +170,7 @@ module Linguist
|
||||
elsif data.include?("flowop")
|
||||
Language["Filebench WML"]
|
||||
elsif fortran_rx.match(data)
|
||||
Language["FORTRAN"]
|
||||
Language["Fortran"]
|
||||
end
|
||||
end
|
||||
|
||||
@@ -166,7 +178,7 @@ module Linguist
|
||||
if /^: /.match(data)
|
||||
Language["Forth"]
|
||||
elsif fortran_rx.match(data)
|
||||
Language["FORTRAN"]
|
||||
Language["Fortran"]
|
||||
end
|
||||
end
|
||||
|
||||
@@ -219,7 +231,7 @@ module Linguist
|
||||
elsif /^(%[%{}]xs|<.*>)/.match(data)
|
||||
Language["Lex"]
|
||||
elsif /^\.[a-z][a-z](\s|$)/i.match(data)
|
||||
Language["Groff"]
|
||||
Language["Roff"]
|
||||
elsif /^\((de|class|rel|code|data|must)\s/.match(data)
|
||||
Language["PicoLisp"]
|
||||
end
|
||||
@@ -263,7 +275,9 @@ module Linguist
|
||||
if /(^[-a-z0-9=#!\*\[|>])|<\//i.match(data) || data.empty?
|
||||
Language["Markdown"]
|
||||
elsif /^(;;|\(define_)/.match(data)
|
||||
Language["GCC machine description"]
|
||||
Language["GCC Machine Description"]
|
||||
else
|
||||
Language["Markdown"]
|
||||
end
|
||||
end
|
||||
|
||||
@@ -287,9 +301,9 @@ module Linguist
|
||||
|
||||
disambiguate ".ms" do |data|
|
||||
if /^[.'][a-z][a-z](\s|$)/i.match(data)
|
||||
Language["Groff"]
|
||||
elsif /(?<!\S)\.(include|globa?l)\s/.match(data) || /(?<!\/\*)(\A|\n)\s*\.[A-Za-z]/.match(data.gsub(/"([^\\"]|\\.)*"|'([^\\']|\\.)*'|\\\s*(?:--.*)?\n/, ""))
|
||||
Language["GAS"]
|
||||
Language["Roff"]
|
||||
elsif /(?<!\S)\.(include|globa?l)\s/.match(data) || /(?<!\/\*)(\A|\n)\s*\.[A-Za-z][_A-Za-z0-9]*:/.match(data.gsub(/"([^\\"]|\\.)*"|'([^\\']|\\.)*'|\\\s*(?:--.*)?\n/, ""))
|
||||
Language["Unix Assembly"]
|
||||
else
|
||||
Language["MAXScript"]
|
||||
end
|
||||
@@ -297,7 +311,7 @@ module Linguist
|
||||
|
||||
disambiguate ".n" do |data|
|
||||
if /^[.']/.match(data)
|
||||
Language["Groff"]
|
||||
Language["Roff"]
|
||||
elsif /^(module|namespace|using)\s/.match(data)
|
||||
Language["Nemerle"]
|
||||
end
|
||||
@@ -331,20 +345,22 @@ module Linguist
|
||||
elsif /use strict|use\s+v?5\./.match(data)
|
||||
Language["Perl"]
|
||||
elsif /^(use v6|(my )?class|module)/.match(data)
|
||||
Language["Perl6"]
|
||||
Language["Perl 6"]
|
||||
end
|
||||
end
|
||||
|
||||
disambiguate ".pm", ".t" do |data|
|
||||
if /use strict|use\s+v?5\./.match(data)
|
||||
disambiguate ".pm" do |data|
|
||||
if /^\s*(?:use\s+v6\s*;|(?:\bmy\s+)?class|module)\b/.match(data)
|
||||
Language["Perl 6"]
|
||||
elsif /\buse\s+(?:strict\b|v?5\.)/.match(data)
|
||||
Language["Perl"]
|
||||
elsif /^(use v6|(my )?class|module)/.match(data)
|
||||
Language["Perl6"]
|
||||
elsif /^\s*\/\* XPM \*\//.match(data)
|
||||
Language["XPM"]
|
||||
end
|
||||
end
|
||||
|
||||
disambiguate ".pod" do |data|
|
||||
if /^=\w+$/.match(data)
|
||||
disambiguate ".pod", "Pod", "Perl" do |data|
|
||||
if /^=\w+\b/.match(data)
|
||||
Language["Pod"]
|
||||
else
|
||||
Language["Perl"]
|
||||
@@ -383,7 +399,7 @@ module Linguist
|
||||
if /^\.!|^\.end lit(?:eral)?\b/i.match(data)
|
||||
Language["RUNOFF"]
|
||||
elsif /^\.\\" /.match(data)
|
||||
Language["Groff"]
|
||||
Language["Roff"]
|
||||
end
|
||||
end
|
||||
|
||||
@@ -434,10 +450,12 @@ module Linguist
|
||||
end
|
||||
|
||||
disambiguate ".t" do |data|
|
||||
if /^\s*%|^\s*var\s+\w+\s*:\s*\w+/.match(data)
|
||||
if /^\s*%[ \t]+|^\s*var\s+\w+\s*:=\s*\w+/.match(data)
|
||||
Language["Turing"]
|
||||
elsif /^\s*use\s+v6\s*;/.match(data)
|
||||
Language["Perl6"]
|
||||
elsif /^\s*(?:use\s+v6\s*;|\bmodule\b|\b(?:my\s+)?class\b)/.match(data)
|
||||
Language["Perl 6"]
|
||||
elsif /\buse\s+(?:strict\b|v?5\.)/.match(data)
|
||||
Language["Perl"]
|
||||
end
|
||||
end
|
||||
|
||||
@@ -465,5 +483,13 @@ module Linguist
|
||||
Language["Scilab"]
|
||||
end
|
||||
end
|
||||
|
||||
disambiguate ".tsx" do |data|
|
||||
if /^\s*(import.+(from\s+|require\()['"]react|\/\/\/\s*<reference\s)/.match(data)
|
||||
Language["TypeScript"]
|
||||
elsif /^\s*<\?xml\s+version/i.match(data)
|
||||
Language["XML"]
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
@@ -109,7 +109,7 @@ module Linguist
|
||||
#
|
||||
# Returns the Language or nil if none was found.
|
||||
def self.find_by_name(name)
|
||||
return nil if name.to_s.empty?
|
||||
return nil if !name.is_a?(String) || name.to_s.empty?
|
||||
name && (@name_index[name.downcase] || @name_index[name.split(',').first.downcase])
|
||||
end
|
||||
|
||||
@@ -124,7 +124,7 @@ module Linguist
|
||||
#
|
||||
# Returns the Language or nil if none was found.
|
||||
def self.find_by_alias(name)
|
||||
return nil if name.to_s.empty?
|
||||
return nil if !name.is_a?(String) || name.to_s.empty?
|
||||
name && (@alias_index[name.downcase] || @alias_index[name.split(',').first.downcase])
|
||||
end
|
||||
|
||||
@@ -214,7 +214,7 @@ module Linguist
|
||||
#
|
||||
# Returns the Language or nil if none was found.
|
||||
def self.[](name)
|
||||
return nil if name.to_s.empty?
|
||||
return nil if !name.is_a?(String) || name.to_s.empty?
|
||||
|
||||
lang = @index[name.downcase]
|
||||
return lang if lang
|
||||
|
||||
@@ -171,6 +171,18 @@ Ada:
|
||||
- ada2005
|
||||
ace_mode: ada
|
||||
language_id: 11
|
||||
Adobe Font Metrics:
|
||||
type: data
|
||||
tm_scope: source.afm
|
||||
extensions:
|
||||
- ".afm"
|
||||
aliases:
|
||||
- acfm
|
||||
- adobe composite font metrics
|
||||
- adobe multiple font metrics
|
||||
- amfm
|
||||
ace_mode: text
|
||||
language_id: 147198098
|
||||
Agda:
|
||||
type: programming
|
||||
color: "#315665"
|
||||
@@ -455,7 +467,6 @@ C:
|
||||
- ".cats"
|
||||
- ".h"
|
||||
- ".idc"
|
||||
- ".w"
|
||||
interpreters:
|
||||
- tcc
|
||||
ace_mode: c_cpp
|
||||
@@ -589,6 +600,13 @@ CSV:
|
||||
extensions:
|
||||
- ".csv"
|
||||
language_id: 51
|
||||
CWeb:
|
||||
type: programming
|
||||
extensions:
|
||||
- ".w"
|
||||
tm_scope: none
|
||||
ace_mode: text
|
||||
language_id: 657332628
|
||||
Cap'n Proto:
|
||||
type: programming
|
||||
tm_scope: source.capnp
|
||||
@@ -687,6 +705,18 @@ Clojure:
|
||||
filenames:
|
||||
- riemann.config
|
||||
language_id: 62
|
||||
Closure Templates:
|
||||
type: markup
|
||||
group: HTML
|
||||
ace_mode: soy_template
|
||||
codemirror_mode: soy
|
||||
codemirror_mime_type: text/x-soy
|
||||
alias:
|
||||
- soy
|
||||
extensions:
|
||||
- ".soy"
|
||||
tm_scope: text.html.soy
|
||||
language_id: 357046146
|
||||
CoffeeScript:
|
||||
type: programming
|
||||
tm_scope: source.coffee
|
||||
@@ -1066,6 +1096,16 @@ Eagle:
|
||||
codemirror_mode: xml
|
||||
codemirror_mime_type: text/xml
|
||||
language_id: 97
|
||||
Easybuild:
|
||||
type: data
|
||||
group: Python
|
||||
ace_mode: python
|
||||
codemirror_mode: python
|
||||
codemirror_mime_type: text/x-python
|
||||
tm_scope: source.python
|
||||
extensions:
|
||||
- ".eb"
|
||||
language_id: 342840477
|
||||
Ecere Projects:
|
||||
type: data
|
||||
group: JavaScript
|
||||
@@ -1213,10 +1253,10 @@ Fancy:
|
||||
language_id: 109
|
||||
Fantom:
|
||||
type: programming
|
||||
color: "#dbded5"
|
||||
color: "#14253c"
|
||||
extensions:
|
||||
- ".fan"
|
||||
tm_scope: none
|
||||
tm_scope: source.fan
|
||||
ace_mode: text
|
||||
language_id: 110
|
||||
Filebench WML:
|
||||
@@ -1359,6 +1399,8 @@ GLSL:
|
||||
- ".glslv"
|
||||
- ".gshader"
|
||||
- ".shader"
|
||||
- ".tesc"
|
||||
- ".tese"
|
||||
- ".vert"
|
||||
- ".vrx"
|
||||
- ".vsh"
|
||||
@@ -1427,6 +1469,29 @@ Gentoo Eclass:
|
||||
codemirror_mode: shell
|
||||
codemirror_mime_type: text/x-sh
|
||||
language_id: 128
|
||||
Gerber Image:
|
||||
type: data
|
||||
aliases:
|
||||
- rs-274x
|
||||
extensions:
|
||||
- ".gbr"
|
||||
- ".gbl"
|
||||
- ".gbo"
|
||||
- ".gbp"
|
||||
- ".gbs"
|
||||
- ".gko"
|
||||
- ".gpb"
|
||||
- ".gpt"
|
||||
- ".gtl"
|
||||
- ".gto"
|
||||
- ".gtp"
|
||||
- ".gts"
|
||||
interpreters:
|
||||
- "gerbv"
|
||||
- "gerbview"
|
||||
tm_scope: source.gerber
|
||||
ace_mode: text
|
||||
language_id: 404627610
|
||||
Gettext Catalog:
|
||||
type: prose
|
||||
searchable: false
|
||||
@@ -1588,17 +1653,18 @@ HCL:
|
||||
ace_mode: ruby
|
||||
codemirror_mode: ruby
|
||||
codemirror_mime_type: text/x-ruby
|
||||
tm_scope: source.ruby
|
||||
tm_scope: source.terraform
|
||||
language_id: 144
|
||||
HLSL:
|
||||
type: programming
|
||||
extensions:
|
||||
- ".hlsl"
|
||||
- ".cginc"
|
||||
- ".fx"
|
||||
- ".fxh"
|
||||
- ".hlsli"
|
||||
ace_mode: text
|
||||
tm_scope: none
|
||||
tm_scope: source.hlsl
|
||||
language_id: 145
|
||||
HTML:
|
||||
type: markup
|
||||
@@ -1736,7 +1802,7 @@ Harbour:
|
||||
language_id: 156
|
||||
Haskell:
|
||||
type: programming
|
||||
color: "#29b544"
|
||||
color: "#5e5086"
|
||||
extensions:
|
||||
- ".hs"
|
||||
- ".hsc"
|
||||
@@ -2023,6 +2089,33 @@ JavaScript:
|
||||
interpreters:
|
||||
- node
|
||||
language_id: 183
|
||||
Jison:
|
||||
type: programming
|
||||
group: Yacc
|
||||
extensions:
|
||||
- ".jison"
|
||||
tm_scope: source.jison
|
||||
ace_mode: text
|
||||
language_id: 284531423
|
||||
Jison Lex:
|
||||
type: programming
|
||||
group: Lex
|
||||
extensions:
|
||||
- ".jisonlex"
|
||||
tm_scope: source.jisonlex
|
||||
ace_mode: text
|
||||
language_id: 406395330
|
||||
Jolie:
|
||||
type: programming
|
||||
extensions:
|
||||
- ".ol"
|
||||
- ".iol"
|
||||
interpreters:
|
||||
- jolie
|
||||
color: "#843179"
|
||||
ace_mode: text
|
||||
tm_scope: source.jolie
|
||||
language_id: 998078858
|
||||
Julia:
|
||||
type: programming
|
||||
extensions:
|
||||
@@ -2056,15 +2149,37 @@ KRL:
|
||||
tm_scope: none
|
||||
ace_mode: text
|
||||
language_id: 186
|
||||
KiCad:
|
||||
type: programming
|
||||
KiCad Board:
|
||||
type: data
|
||||
extensions:
|
||||
- ".brd"
|
||||
tm_scope: source.pcb.board
|
||||
ace_mode: text
|
||||
language_id: 140848857
|
||||
KiCad Layout:
|
||||
type: data
|
||||
aliases:
|
||||
- pcbnew
|
||||
extensions:
|
||||
- ".kicad_pcb"
|
||||
- ".kicad_mod"
|
||||
- ".kicad_wks"
|
||||
filenames:
|
||||
- fp-lib-table
|
||||
tm_scope: source.pcb.sexp
|
||||
ace_mode: lisp
|
||||
codemirror_mode: commonlisp
|
||||
codemirror_mime_type: text/x-common-lisp
|
||||
language_id: 187
|
||||
KiCad Schematic:
|
||||
type: data
|
||||
aliases:
|
||||
- eeschema schematic
|
||||
extensions:
|
||||
- ".sch"
|
||||
- ".brd"
|
||||
- ".kicad_pcb"
|
||||
tm_scope: none
|
||||
tm_scope: source.pcb.schematic
|
||||
ace_mode: text
|
||||
language_id: 187
|
||||
language_id: 622447435
|
||||
Kit:
|
||||
type: markup
|
||||
ace_mode: html
|
||||
@@ -2421,6 +2536,7 @@ Makefile:
|
||||
- Makefile.frag
|
||||
- Makefile.in
|
||||
- Makefile.inc
|
||||
- Makefile.wat
|
||||
- makefile
|
||||
- makefile.sco
|
||||
- mkfile
|
||||
@@ -2440,6 +2556,8 @@ Mako:
|
||||
language_id: 221
|
||||
Markdown:
|
||||
type: prose
|
||||
aliases:
|
||||
- pandoc
|
||||
ace_mode: markdown
|
||||
codemirror_mode: gfm
|
||||
codemirror_mime_type: text/x-gfm
|
||||
@@ -2447,12 +2565,27 @@ Markdown:
|
||||
extensions:
|
||||
- ".md"
|
||||
- ".markdown"
|
||||
- ".mdown"
|
||||
- ".mdwn"
|
||||
- ".mkd"
|
||||
- ".mkdn"
|
||||
- ".mkdown"
|
||||
- ".ron"
|
||||
- ".workbook"
|
||||
tm_scope: source.gfm
|
||||
language_id: 222
|
||||
Marko:
|
||||
group: HTML
|
||||
type: markup
|
||||
tm_scope: text.marko
|
||||
extensions:
|
||||
- ".marko"
|
||||
aliases:
|
||||
- markojs
|
||||
ace_mode: text
|
||||
codemirror_mode: htmlmixed
|
||||
codemirror_mime_type: text/html
|
||||
language_id: 932782397
|
||||
Mask:
|
||||
type: markup
|
||||
color: "#f97732"
|
||||
@@ -2537,6 +2670,15 @@ Mercury:
|
||||
- ".moo"
|
||||
tm_scope: source.mercury
|
||||
language_id: 229
|
||||
Meson:
|
||||
type: programming
|
||||
color: "#007800"
|
||||
filenames:
|
||||
- meson.build
|
||||
- meson_options.txt
|
||||
tm_scope: source.meson
|
||||
ace_mode: text
|
||||
language_id: 799141244
|
||||
Metal:
|
||||
type: programming
|
||||
color: "#8f14e9"
|
||||
@@ -2905,7 +3047,7 @@ OpenSCAD:
|
||||
type: programming
|
||||
extensions:
|
||||
- ".scad"
|
||||
tm_scope: none
|
||||
tm_scope: source.scad
|
||||
ace_mode: scad
|
||||
language_id: 266
|
||||
OpenType Feature File:
|
||||
@@ -2952,6 +3094,14 @@ Oz:
|
||||
codemirror_mode: oz
|
||||
codemirror_mime_type: text/x-oz
|
||||
language_id: 270
|
||||
P4:
|
||||
type: programming
|
||||
color: "#7055b5"
|
||||
extensions:
|
||||
- ".p4"
|
||||
tm_scope: source.p4
|
||||
ace_mode: text
|
||||
language_id: 348895984
|
||||
PAWN:
|
||||
type: programming
|
||||
color: "#dbb284"
|
||||
@@ -2997,12 +3147,21 @@ PLSQL:
|
||||
color: "#dad8d8"
|
||||
extensions:
|
||||
- ".pls"
|
||||
- ".bdy"
|
||||
- ".ddl"
|
||||
- ".fnc"
|
||||
- ".pck"
|
||||
- ".pkb"
|
||||
- ".pks"
|
||||
- ".plb"
|
||||
- ".plsql"
|
||||
- ".prc"
|
||||
- ".spc"
|
||||
- ".sql"
|
||||
- ".tpb"
|
||||
- ".tps"
|
||||
- ".trg"
|
||||
- ".vw"
|
||||
language_id: 273
|
||||
PLpgSQL:
|
||||
type: programming
|
||||
@@ -3028,7 +3187,7 @@ Pan:
|
||||
color: "#cc0000"
|
||||
extensions:
|
||||
- ".pan"
|
||||
tm_scope: none
|
||||
tm_scope: source.pan
|
||||
ace_mode: text
|
||||
language_id: 276
|
||||
Papyrus:
|
||||
@@ -3088,6 +3247,14 @@ Pascal:
|
||||
codemirror_mode: pascal
|
||||
codemirror_mime_type: text/x-pascal
|
||||
language_id: 281
|
||||
Pep8:
|
||||
type: programming
|
||||
color: "#C76F5B"
|
||||
extensions:
|
||||
- ".pep"
|
||||
ace_mode: text
|
||||
tm_scope: source.pep8
|
||||
language_id: 840372442
|
||||
Perl:
|
||||
type: programming
|
||||
tm_scope: source.perl
|
||||
@@ -3107,10 +3274,12 @@ Perl:
|
||||
- ".pod"
|
||||
- ".psgi"
|
||||
- ".t"
|
||||
filenames:
|
||||
- cpanfile
|
||||
interpreters:
|
||||
- perl
|
||||
language_id: 282
|
||||
Perl6:
|
||||
Perl 6:
|
||||
type: programming
|
||||
color: "#0000fb"
|
||||
extensions:
|
||||
@@ -3188,6 +3357,8 @@ Pod:
|
||||
wrap: true
|
||||
extensions:
|
||||
- ".pod"
|
||||
interpreters:
|
||||
- perl
|
||||
tm_scope: none
|
||||
language_id: 288
|
||||
PogoScript:
|
||||
@@ -3211,6 +3382,7 @@ PostScript:
|
||||
extensions:
|
||||
- ".ps"
|
||||
- ".eps"
|
||||
- ".pfa"
|
||||
tm_scope: source.postscript
|
||||
aliases:
|
||||
- postscr
|
||||
@@ -3357,6 +3529,7 @@ Python:
|
||||
- ".lmi"
|
||||
- ".py3"
|
||||
- ".pyde"
|
||||
- ".pyi"
|
||||
- ".pyp"
|
||||
- ".pyt"
|
||||
- ".pyw"
|
||||
@@ -3372,6 +3545,7 @@ Python:
|
||||
- SConscript
|
||||
- SConstruct
|
||||
- Snakefile
|
||||
- WORKSPACE
|
||||
- wscript
|
||||
interpreters:
|
||||
- python
|
||||
@@ -3634,6 +3808,14 @@ RenderScript:
|
||||
tm_scope: none
|
||||
ace_mode: text
|
||||
language_id: 323
|
||||
Ring:
|
||||
type: programming
|
||||
color: "#0e60e3"
|
||||
extensions:
|
||||
- ".ring"
|
||||
tm_scope: source.ring
|
||||
ace_mode: text
|
||||
language_id: 431
|
||||
RobotFramework:
|
||||
type: programming
|
||||
extensions:
|
||||
@@ -3666,6 +3848,7 @@ Roff:
|
||||
- ".me"
|
||||
- ".ms"
|
||||
- ".n"
|
||||
- ".nr"
|
||||
- ".rno"
|
||||
- ".roff"
|
||||
- ".tmac"
|
||||
@@ -3704,10 +3887,10 @@ Ruby:
|
||||
extensions:
|
||||
- ".rb"
|
||||
- ".builder"
|
||||
- ".eye"
|
||||
- ".fcgi"
|
||||
- ".gemspec"
|
||||
- ".god"
|
||||
- ".irbrc"
|
||||
- ".jbuilder"
|
||||
- ".mspec"
|
||||
- ".pluginspec"
|
||||
@@ -3729,6 +3912,7 @@ Ruby:
|
||||
- jruby
|
||||
- rbx
|
||||
filenames:
|
||||
- ".irbrc"
|
||||
- ".pryrc"
|
||||
- Appraisals
|
||||
- Berksfile
|
||||
@@ -3744,6 +3928,7 @@ Ruby:
|
||||
- Mavenfile
|
||||
- Podfile
|
||||
- Puppetfile
|
||||
- Rakefile
|
||||
- Snapfile
|
||||
- Thorfile
|
||||
- Vagrantfile
|
||||
@@ -3931,6 +4116,7 @@ Scheme:
|
||||
color: "#1e4aec"
|
||||
extensions:
|
||||
- ".scm"
|
||||
- ".sch"
|
||||
- ".sld"
|
||||
- ".sls"
|
||||
- ".sps"
|
||||
@@ -3962,6 +4148,13 @@ Self:
|
||||
tm_scope: none
|
||||
ace_mode: text
|
||||
language_id: 345
|
||||
ShaderLab:
|
||||
type: programming
|
||||
extensions:
|
||||
- ".shader"
|
||||
ace_mode: text
|
||||
tm_scope: source.shaderlab
|
||||
language_id: 664257356
|
||||
Shell:
|
||||
type: programming
|
||||
color: "#89e051"
|
||||
@@ -3990,7 +4183,12 @@ Shell:
|
||||
- PKGBUILD
|
||||
- gradlew
|
||||
interpreters:
|
||||
- ash
|
||||
- bash
|
||||
- dash
|
||||
- ksh
|
||||
- mksh
|
||||
- pdksh
|
||||
- rc
|
||||
- sh
|
||||
- zsh
|
||||
@@ -4015,7 +4213,7 @@ Shen:
|
||||
color: "#120F14"
|
||||
extensions:
|
||||
- ".shen"
|
||||
tm_scope: none
|
||||
tm_scope: source.shen
|
||||
ace_mode: text
|
||||
language_id: 348
|
||||
Slash:
|
||||
@@ -4376,6 +4574,15 @@ Twig:
|
||||
codemirror_mode: twig
|
||||
codemirror_mime_type: text/x-twig
|
||||
language_id: 377
|
||||
Type Language:
|
||||
type: data
|
||||
aliases:
|
||||
- tl
|
||||
extensions:
|
||||
- ".tl"
|
||||
tm_scope: source.tl
|
||||
ace_mode: text
|
||||
language_id: 632765617
|
||||
TypeScript:
|
||||
type: programming
|
||||
color: "#2b7489"
|
||||
@@ -4573,6 +4780,20 @@ Web Ontology Language:
|
||||
tm_scope: text.xml
|
||||
ace_mode: xml
|
||||
language_id: 394
|
||||
WebAssembly:
|
||||
type: programming
|
||||
color: "#04133b"
|
||||
extensions:
|
||||
- ".wast"
|
||||
- ".wat"
|
||||
aliases:
|
||||
- wast
|
||||
- wasm
|
||||
tm_scope: source.webassembly
|
||||
ace_mode: lisp
|
||||
codemirror_mode: commonlisp
|
||||
codemirror_mime_type: text/x-common-lisp
|
||||
language_id: 956556503
|
||||
WebIDL:
|
||||
type: programming
|
||||
extensions:
|
||||
@@ -4629,6 +4850,8 @@ XML:
|
||||
- wsdl
|
||||
extensions:
|
||||
- ".xml"
|
||||
- ".adml"
|
||||
- ".admx"
|
||||
- ".ant"
|
||||
- ".axml"
|
||||
- ".builds"
|
||||
@@ -4656,6 +4879,7 @@ XML:
|
||||
- ".kml"
|
||||
- ".launch"
|
||||
- ".mdpolicy"
|
||||
- ".mjml"
|
||||
- ".mm"
|
||||
- ".mod"
|
||||
- ".mxml"
|
||||
@@ -4694,8 +4918,11 @@ XML:
|
||||
- ".ux"
|
||||
- ".vbproj"
|
||||
- ".vcxproj"
|
||||
- ".vsixmanifest"
|
||||
- ".vssettings"
|
||||
- ".vstemplate"
|
||||
- ".vxml"
|
||||
- ".wixproj"
|
||||
- ".wsdl"
|
||||
- ".wsf"
|
||||
- ".wxi"
|
||||
@@ -4711,6 +4938,7 @@ XML:
|
||||
- ".xml.dist"
|
||||
- ".xproj"
|
||||
- ".xsd"
|
||||
- ".xspec"
|
||||
- ".xul"
|
||||
- ".zcml"
|
||||
filenames:
|
||||
@@ -4724,6 +4952,14 @@ XML:
|
||||
- Web.config
|
||||
- packages.config
|
||||
language_id: 399
|
||||
XPM:
|
||||
type: data
|
||||
extensions:
|
||||
- ".xpm"
|
||||
- ".pm"
|
||||
ace_mode: c_cpp
|
||||
tm_scope: source.c
|
||||
language_id: 781846279
|
||||
XPages:
|
||||
type: programming
|
||||
extensions:
|
||||
|
||||
@@ -72,6 +72,9 @@
|
||||
# Normalize.css
|
||||
- (^|/)normalize\.(css|less|scss|styl)$
|
||||
|
||||
# Skeleton.css
|
||||
- (^|/)skeleton\.(css|less|scss|styl)$
|
||||
|
||||
# Bourbon css
|
||||
- (^|/)[Bb]ourbon/.*\.(css|less|scss|styl)$
|
||||
|
||||
@@ -188,6 +191,9 @@
|
||||
# React
|
||||
- (^|/)react(-[^.]*)?\.js$
|
||||
|
||||
# flow-typed
|
||||
- (^|/)flow-typed/.*\.js$
|
||||
|
||||
# Modernizr
|
||||
- (^|/)modernizr\-\d\.\d+(\.\d+)?\.js$
|
||||
- (^|/)modernizr\.custom\.\d+\.js$
|
||||
|
||||
@@ -1,3 +1,3 @@
|
||||
module Linguist
|
||||
VERSION = "5.0.5"
|
||||
VERSION = "5.2.0"
|
||||
end
|
||||
|
||||
69
samples/Adobe Font Metrics/OpenSansCondensed-Bold.afm
Normal file
69
samples/Adobe Font Metrics/OpenSansCondensed-Bold.afm
Normal file
@@ -0,0 +1,69 @@
|
||||
StartFontMetrics 2.0
|
||||
Comment Generated by FontForge 20170719
|
||||
Comment Creation Date: Sun Jul 23 19:47:25 2017
|
||||
FontName OpenSansCondensed-Bold
|
||||
FullName Open Sans Condensed Bold
|
||||
FamilyName Open Sans Condensed
|
||||
Weight Bold
|
||||
Notice (Digitized data copyright (c) 2010-2011, Google Corporation.)
|
||||
ItalicAngle 0
|
||||
IsFixedPitch false
|
||||
UnderlinePosition -205
|
||||
UnderlineThickness 102
|
||||
Version 1.11
|
||||
EncodingScheme ISO10646-1
|
||||
FontBBox -667 -290 1046 1062
|
||||
CapHeight 714
|
||||
XHeight 544
|
||||
Ascender 760
|
||||
Descender -240
|
||||
StartCharMetrics 939
|
||||
C 32 ; WX 247 ; N space ; B 0 0 0 0 ;
|
||||
C 33 ; WX 270 ; N exclam ; B 54 -14 216 714 ;
|
||||
C 34 ; WX 445 ; N quotedbl ; B 59 456 388 714 ;
|
||||
C 35 ; WX 543 ; N numbersign ; B 20 0 525 714 ;
|
||||
C 36 ; WX 462 ; N dollar ; B 36 -59 427 760 ;
|
||||
C 37 ; WX 758 ; N percent ; B 30 -9 729 725 ;
|
||||
C 38 ; WX 581 ; N ampersand ; B 28 -10 572 725 ;
|
||||
C 39 ; WX 246 ; N quotesingle ; B 59 456 188 714 ;
|
||||
C -1 ; WX 462 ; N six.os ; B 36 -10 427 724 ;
|
||||
C -1 ; WX 420 ; N seven.os ; B 19 -170 402 544 ;
|
||||
C -1 ; WX 462 ; N eight.os ; B 35 -10 429 724 ;
|
||||
C -1 ; WX 461 ; N nine.os ; B 33 -182 424 564 ;
|
||||
C -1 ; WX 496 ; N g.alt ; B 36 -241 442 555 ;
|
||||
C -1 ; WX 496 ; N gcircumflex.alt ; B 36 -241 442 767 ;
|
||||
C -1 ; WX 496 ; N gbreve.alt ; B 36 -241 442 766 ;
|
||||
C -1 ; WX 496 ; N gdot.alt ; B 36 -241 442 756 ;
|
||||
C -1 ; WX 496 ; N gcommaaccent.alt ; B 36 -241 442 767 ;
|
||||
C -1 ; WX 0 ; N cyrotmarkcomb ; B -203 591 203 714 ;
|
||||
EndCharMetrics
|
||||
StartKernData
|
||||
StartKernPairs 15878
|
||||
KPX quotedbl uni1ECA 20
|
||||
KPX quotedbl uni1EC8 20
|
||||
KPX quotedbl Idotaccent 20
|
||||
KPX quotedbl Iogonek 20
|
||||
KPX quotedbl Imacron 20
|
||||
KPX quotedbl Idieresis 20
|
||||
KPX quotedbl Icircumflex 20
|
||||
KPX quotedbl Iacute 20
|
||||
KPX quotedbl Igrave 20
|
||||
KPX quotedbl I 20
|
||||
KPX quotedbl uni1EF9 20
|
||||
KPX quoteleft q -20
|
||||
KPX quoteleft o -20
|
||||
KPX quoteleft g -9
|
||||
KPX quoteleft e -20
|
||||
KPX quoteleft d -20
|
||||
KPX quoteleft c -20
|
||||
KPX quoteleft Z 20
|
||||
KPX Delta C -9
|
||||
KPX Delta A -20
|
||||
KPX Delta question 20
|
||||
KPX Delta period -41
|
||||
KPX Delta comma -41
|
||||
KPX Delta quotesingle 41
|
||||
KPX Delta quotedbl 41
|
||||
EndKernPairs
|
||||
EndKernData
|
||||
EndFontMetrics
|
||||
464
samples/Adobe Font Metrics/SpecialElite.afm
Normal file
464
samples/Adobe Font Metrics/SpecialElite.afm
Normal file
@@ -0,0 +1,464 @@
|
||||
StartFontMetrics 2.0
|
||||
Comment Generated by FontForge 20170719
|
||||
Comment Creation Date: Sun Jul 23 19:52:19 2017
|
||||
FontName SpecialElite-Regular
|
||||
FullName Special Elite
|
||||
FamilyName Special Elite
|
||||
Weight Book
|
||||
Notice (Copyright (c) 2010 by Brian J. Bonislawsky DBA Astigmatic (AOETI). All rights reserved. Available under the Apache 2.0 licence.http://www.apache.org/licenses/LICENSE-2.0.html)
|
||||
ItalicAngle 0
|
||||
IsFixedPitch false
|
||||
UnderlinePosition -133
|
||||
UnderlineThickness 20
|
||||
Version 1.000
|
||||
EncodingScheme ISO10646-1
|
||||
FontBBox -33 -322 1052 959
|
||||
CapHeight 714
|
||||
XHeight 487
|
||||
Ascender 688
|
||||
Descender -225
|
||||
StartCharMetrics 371
|
||||
C 32 ; WX 292 ; N space ; B 0 0 0 0 ;
|
||||
C 33 ; WX 276 ; N exclam ; B 73 0 207 702 ;
|
||||
C 34 ; WX 352 ; N quotedbl ; B 48 449 295 704 ;
|
||||
C 35 ; WX 554 ; N numbersign ; B 31 -2 524 713 ;
|
||||
C 36 ; WX 526 ; N dollar ; B 31 -201 498 919 ;
|
||||
C 37 ; WX 666 ; N percent ; B 32 -186 642 872 ;
|
||||
C 38 ; WX 676 ; N ampersand ; B 31 -5 645 705 ;
|
||||
C 39 ; WX 196 ; N quotesingle ; B 48 449 143 703 ;
|
||||
C 40 ; WX 279 ; N parenleft ; B 55 -71 243 757 ;
|
||||
C 41 ; WX 281 ; N parenright ; B 37 -59 229 770 ;
|
||||
C 42 ; WX 522 ; N asterisk ; B 32 276 493 707 ;
|
||||
C 43 ; WX 496 ; N plus ; B 29 131 465 560 ;
|
||||
C 44 ; WX 336 ; N comma ; B 39 -197 290 251 ;
|
||||
C 45 ; WX 636 ; N hyphen ; B 63 273 573 397 ;
|
||||
C 46 ; WX 349 ; N period ; B 52 -3 298 245 ;
|
||||
C 47 ; WX 557 ; N slash ; B 23 -41 536 760 ;
|
||||
C 48 ; WX 610 ; N zero ; B 55 0 560 720 ;
|
||||
C 49 ; WX 569 ; N one ; B 27 -12 572 712 ;
|
||||
C 50 ; WX 573 ; N two ; B 50 -25 541 680 ;
|
||||
C 51 ; WX 557 ; N three ; B 44 -25 514 694 ;
|
||||
C 52 ; WX 612 ; N four ; B 15 4 584 708 ;
|
||||
C 53 ; WX 537 ; N five ; B 47 0 505 690 ;
|
||||
C 54 ; WX 588 ; N six ; B 48 -10 548 707 ;
|
||||
C 55 ; WX 555 ; N seven ; B 15 -34 549 734 ;
|
||||
C 56 ; WX 598 ; N eight ; B 51 1 551 720 ;
|
||||
C 57 ; WX 584 ; N nine ; B 48 -2 539 715 ;
|
||||
C 58 ; WX 343 ; N colon ; B 51 -3 297 518 ;
|
||||
C 59 ; WX 328 ; N semicolon ; B 45 -197 297 518 ;
|
||||
C 60 ; WX 463 ; N less ; B 31 120 401 565 ;
|
||||
C 61 ; WX 636 ; N equal ; B 63 186 573 513 ;
|
||||
C 62 ; WX 463 ; N greater ; B 62 120 433 565 ;
|
||||
C 63 ; WX 470 ; N question ; B 34 2 442 729 ;
|
||||
C 64 ; WX 665 ; N at ; B 46 -4 618 680 ;
|
||||
C 65 ; WX 549 ; N A ; B -1 -16 550 703 ;
|
||||
C 66 ; WX 604 ; N B ; B 29 -6 557 704 ;
|
||||
C 67 ; WX 579 ; N C ; B 46 -13 531 700 ;
|
||||
C 68 ; WX 622 ; N D ; B 36 -17 579 713 ;
|
||||
C 69 ; WX 638 ; N E ; B 38 -16 587 691 ;
|
||||
C 70 ; WX 605 ; N F ; B 29 -9 595 709 ;
|
||||
C 71 ; WX 615 ; N G ; B 45 -3 586 710 ;
|
||||
C 72 ; WX 652 ; N H ; B 40 -20 622 690 ;
|
||||
C 73 ; WX 495 ; N I ; B 26 -24 469 710 ;
|
||||
C 74 ; WX 541 ; N J ; B 16 -3 539 703 ;
|
||||
C 75 ; WX 582 ; N K ; B 28 -5 584 711 ;
|
||||
C 76 ; WX 602 ; N L ; B 23 -14 583 718 ;
|
||||
C 77 ; WX 697 ; N M ; B 46 -10 655 704 ;
|
||||
C 78 ; WX 627 ; N N ; B 41 -15 595 700 ;
|
||||
C 79 ; WX 616 ; N O ; B 42 -30 574 702 ;
|
||||
C 80 ; WX 553 ; N P ; B 30 -12 527 689 ;
|
||||
C 81 ; WX 602 ; N Q ; B 42 -98 571 711 ;
|
||||
C 82 ; WX 636 ; N R ; B 14 -9 624 706 ;
|
||||
C 83 ; WX 588 ; N S ; B 51 -13 547 690 ;
|
||||
C 84 ; WX 594 ; N T ; B 25 1 564 707 ;
|
||||
C 85 ; WX 621 ; N U ; B 24 -6 611 710 ;
|
||||
C 86 ; WX 611 ; N V ; B -1 -15 614 726 ;
|
||||
C 87 ; WX 643 ; N W ; B 8 0 614 689 ;
|
||||
C 88 ; WX 582 ; N X ; B 3 -1 580 697 ;
|
||||
C 89 ; WX 561 ; N Y ; B -21 -2 562 719 ;
|
||||
C 90 ; WX 592 ; N Z ; B 49 -1 551 709 ;
|
||||
C 91 ; WX 312 ; N bracketleft ; B 85 -72 297 754 ;
|
||||
C 92 ; WX 557 ; N backslash ; B 21 -41 534 760 ;
|
||||
C 249 ; WX 639 ; N ugrave ; B 5 -28 624 679 ;
|
||||
C 250 ; WX 639 ; N uacute ; B 5 -28 624 682 ;
|
||||
C 251 ; WX 639 ; N ucircumflex ; B 5 -28 624 691 ;
|
||||
C 252 ; WX 639 ; N udieresis ; B 5 -28 624 649 ;
|
||||
C 253 ; WX 592 ; N yacute ; B 0 -232 596 666 ;
|
||||
C 254 ; WX 552 ; N thorn ; B -33 -221 512 699 ;
|
||||
C 255 ; WX 592 ; N ydieresis ; B 0 -232 596 643 ;
|
||||
C -1 ; WX 549 ; N Amacron ; B -1 -16 550 809 ;
|
||||
C -1 ; WX 565 ; N amacron ; B 38 -6 561 619 ;
|
||||
C -1 ; WX 549 ; N Abreve ; B -1 -16 550 890 ;
|
||||
C -1 ; WX 565 ; N abreve ; B 38 -6 561 686 ;
|
||||
C -1 ; WX 549 ; N Aogonek ; B -1 -138 589 703 ;
|
||||
C -1 ; WX 565 ; N aogonek ; B 38 -118 624 502 ;
|
||||
C -1 ; WX 579 ; N Cacute ; B 46 -13 531 900 ;
|
||||
C -1 ; WX 547 ; N cacute ; B 39 -22 506 693 ;
|
||||
C -1 ; WX 579 ; N Ccircumflex ; B 46 -13 531 890 ;
|
||||
C -1 ; WX 547 ; N ccircumflex ; B 39 -22 506 689 ;
|
||||
C -1 ; WX 579 ; N Cdotaccent ; B 46 -13 531 859 ;
|
||||
C -1 ; WX 547 ; N cdotaccent ; B 39 -22 506 657 ;
|
||||
C -1 ; WX 579 ; N Ccaron ; B 46 -13 531 918 ;
|
||||
C -1 ; WX 547 ; N ccaron ; B 39 -22 506 710 ;
|
||||
C -1 ; WX 622 ; N Dcaron ; B 36 -17 579 924 ;
|
||||
C -1 ; WX 750 ; N dcaron ; B 40 -26 716 704 ;
|
||||
C -1 ; WX 623 ; N Dcroat ; B 36 -17 580 713 ;
|
||||
C -1 ; WX 603 ; N dcroat ; B 40 -26 597 714 ;
|
||||
C -1 ; WX 638 ; N Emacron ; B 38 -16 587 798 ;
|
||||
C -1 ; WX 543 ; N emacron ; B 40 -23 501 616 ;
|
||||
C -1 ; WX 638 ; N Ebreve ; B 38 -16 587 876 ;
|
||||
C -1 ; WX 543 ; N ebreve ; B 40 -23 501 683 ;
|
||||
C -1 ; WX 638 ; N Edotaccent ; B 38 -16 587 848 ;
|
||||
C -1 ; WX 543 ; N edotaccent ; B 40 -23 501 659 ;
|
||||
C -1 ; WX 638 ; N Eogonek ; B 38 -113 610 691 ;
|
||||
C -1 ; WX 543 ; N eogonek ; B 40 -145 501 499 ;
|
||||
C -1 ; WX 638 ; N Ecaron ; B 38 -16 587 913 ;
|
||||
C -1 ; WX 543 ; N ecaron ; B 40 -23 501 714 ;
|
||||
C -1 ; WX 615 ; N Gcircumflex ; B 45 -3 586 906 ;
|
||||
C -1 ; WX 583 ; N gcircumflex ; B 42 -224 562 676 ;
|
||||
C -1 ; WX 615 ; N Gbreve ; B 45 -3 586 899 ;
|
||||
C -1 ; WX 583 ; N gbreve ; B 42 -224 562 667 ;
|
||||
C -1 ; WX 615 ; N Gdotaccent ; B 45 -3 586 871 ;
|
||||
C -1 ; WX 583 ; N gdotaccent ; B 42 -224 562 637 ;
|
||||
C -1 ; WX 615 ; N Gcommaaccent ; B 45 -253 586 710 ;
|
||||
C -1 ; WX 583 ; N gcommaaccent ; B 42 -224 562 734 ;
|
||||
C -1 ; WX 652 ; N Hcircumflex ; B 40 -20 622 897 ;
|
||||
C -1 ; WX 616 ; N hcircumflex ; B 5 -29 601 688 ;
|
||||
C -1 ; WX 652 ; N Hbar ; B 40 -20 622 690 ;
|
||||
C -1 ; WX 616 ; N hbar ; B 5 -29 601 683 ;
|
||||
C -1 ; WX 495 ; N Itilde ; B 26 -24 469 859 ;
|
||||
C -1 ; WX 568 ; N itilde ; B 36 -42 568 615 ;
|
||||
C -1 ; WX 495 ; N Imacron ; B 26 -24 469 819 ;
|
||||
C -1 ; WX 568 ; N imacron ; B 36 -42 568 585 ;
|
||||
C -1 ; WX 495 ; N Ibreve ; B 26 -24 469 901 ;
|
||||
C -1 ; WX 568 ; N ibreve ; B 36 -42 568 661 ;
|
||||
C -1 ; WX 495 ; N Iogonek ; B 26 -154 469 710 ;
|
||||
C -1 ; WX 568 ; N iogonek ; B 36 -149 568 674 ;
|
||||
C -1 ; WX 495 ; N Idotaccent ; B 26 -24 469 873 ;
|
||||
C -1 ; WX 568 ; N dotlessi ; B 36 -42 568 468 ;
|
||||
C -1 ; WX 1036 ; N IJ ; B 26 -24 1034 710 ;
|
||||
C -1 ; WX 983 ; N ij ; B 36 -236 913 683 ;
|
||||
C -1 ; WX 541 ; N Jcircumflex ; B 16 -3 539 913 ;
|
||||
C -1 ; WX 415 ; N jcircumflex ; B -12 -236 405 699 ;
|
||||
C -1 ; WX 582 ; N Kcommaaccent ; B 28 -253 584 711 ;
|
||||
C -1 ; WX 620 ; N kcommaaccent ; B 11 -253 600 683 ;
|
||||
C -1 ; WX 620 ; N kgreenlandic ; B 11 -28 600 482 ;
|
||||
C -1 ; WX 602 ; N Lacute ; B 23 -14 583 923 ;
|
||||
C -1 ; WX 540 ; N lacute ; B 4 -28 538 902 ;
|
||||
C -1 ; WX 602 ; N Lcommaaccent ; B 23 -267 583 718 ;
|
||||
C -1 ; WX 540 ; N lcommaaccent ; B 4 -267 538 682 ;
|
||||
C -1 ; WX 602 ; N Lcaron ; B 23 -14 583 794 ;
|
||||
C -1 ; WX 582 ; N lcaron ; B 4 -28 549 704 ;
|
||||
C -1 ; WX 781 ; N Ldot ; B 23 -14 748 718 ;
|
||||
C -1 ; WX 571 ; N ldotaccent ; B 4 -28 538 682 ;
|
||||
C -1 ; WX 603 ; N Lslash ; B 24 -14 584 718 ;
|
||||
C -1 ; WX 541 ; N lslash ; B 4 -28 538 682 ;
|
||||
C -1 ; WX 627 ; N Nacute ; B 41 -15 595 894 ;
|
||||
C -1 ; WX 632 ; N nacute ; B 32 -23 612 696 ;
|
||||
C -1 ; WX 627 ; N Ncommaaccent ; B 41 -268 595 700 ;
|
||||
C -1 ; WX 632 ; N ncommaaccent ; B 32 -268 612 491 ;
|
||||
C -1 ; WX 627 ; N Ncaron ; B 41 -15 595 900 ;
|
||||
C -1 ; WX 632 ; N ncaron ; B 32 -23 612 712 ;
|
||||
C -1 ; WX 815 ; N napostrophe ; B 34 -23 795 704 ;
|
||||
C -1 ; WX 627 ; N Eng ; B 41 -320 595 700 ;
|
||||
C -1 ; WX 605 ; N eng ; B 32 -322 534 491 ;
|
||||
C -1 ; WX 616 ; N Omacron ; B 42 -30 574 815 ;
|
||||
C -1 ; WX 583 ; N omacron ; B 40 -34 543 598 ;
|
||||
C -1 ; WX 616 ; N Obreve ; B 42 -30 574 891 ;
|
||||
C -1 ; WX 583 ; N obreve ; B 40 -34 543 675 ;
|
||||
C -1 ; WX 616 ; N Ohungarumlaut ; B 42 -30 574 907 ;
|
||||
C -1 ; WX 583 ; N ohungarumlaut ; B 40 -34 545 693 ;
|
||||
C -1 ; WX 1018 ; N OE ; B 42 -30 967 702 ;
|
||||
C -1 ; WX 958 ; N oe ; B 40 -34 916 499 ;
|
||||
C -1 ; WX 636 ; N Racute ; B 14 -9 624 910 ;
|
||||
C -1 ; WX 579 ; N racute ; B 28 -16 566 693 ;
|
||||
C -1 ; WX 636 ; N Rcommaaccent ; B 14 -268 624 706 ;
|
||||
C -1 ; WX 579 ; N rcommaaccent ; B 28 -272 566 495 ;
|
||||
C -1 ; WX 636 ; N Rcaron ; B 14 -9 624 927 ;
|
||||
C -1 ; WX 579 ; N rcaron ; B 28 -16 566 698 ;
|
||||
C -1 ; WX 588 ; N Sacute ; B 51 -13 547 900 ;
|
||||
C -1 ; WX 519 ; N sacute ; B 48 -31 481 713 ;
|
||||
C -1 ; WX 588 ; N Scircumflex ; B 51 -13 547 904 ;
|
||||
C -1 ; WX 519 ; N scircumflex ; B 48 -31 481 710 ;
|
||||
C -1 ; WX 588 ; N Scedilla ; B 51 -145 547 690 ;
|
||||
C -1 ; WX 519 ; N scedilla ; B 48 -145 481 496 ;
|
||||
C -1 ; WX 588 ; N Scaron ; B 51 -13 547 904 ;
|
||||
C -1 ; WX 519 ; N scaron ; B 48 -31 481 710 ;
|
||||
C -1 ; WX 594 ; N Tcommaaccent ; B 25 -263 564 707 ;
|
||||
C -1 ; WX 510 ; N tcommaaccent ; B 0 -282 488 694 ;
|
||||
C -1 ; WX 594 ; N Tcaron ; B 25 1 564 920 ;
|
||||
C -1 ; WX 713 ; N tcaron ; B 0 -34 680 704 ;
|
||||
C -1 ; WX 594 ; N Tbar ; B 25 1 564 707 ;
|
||||
C -1 ; WX 510 ; N tbar ; B 0 -34 488 694 ;
|
||||
C -1 ; WX 621 ; N Utilde ; B 24 -6 611 850 ;
|
||||
C -1 ; WX 638 ; N utilde ; B 5 -28 624 636 ;
|
||||
C -1 ; WX 621 ; N Umacron ; B 24 -6 611 811 ;
|
||||
C -1 ; WX 638 ; N umacron ; B 5 -28 624 587 ;
|
||||
C -1 ; WX 621 ; N Ubreve ; B 24 -6 611 888 ;
|
||||
C -1 ; WX 638 ; N ubreve ; B 5 -28 624 665 ;
|
||||
C -1 ; WX 621 ; N Uring ; B 24 -6 611 959 ;
|
||||
C -1 ; WX 638 ; N uring ; B 5 -28 624 738 ;
|
||||
C -1 ; WX 621 ; N Uhungarumlaut ; B 24 -6 611 918 ;
|
||||
C -1 ; WX 638 ; N uhungarumlaut ; B 5 -28 624 691 ;
|
||||
C -1 ; WX 621 ; N Uogonek ; B 24 -136 611 710 ;
|
||||
C -1 ; WX 638 ; N uogonek ; B 5 -147 671 487 ;
|
||||
C -1 ; WX 643 ; N Wcircumflex ; B 8 0 614 901 ;
|
||||
C -1 ; WX 678 ; N wcircumflex ; B 5 -10 674 685 ;
|
||||
C -1 ; WX 561 ; N Ycircumflex ; B -21 -2 562 934 ;
|
||||
C -1 ; WX 592 ; N ycircumflex ; B 0 -232 596 691 ;
|
||||
C -1 ; WX 561 ; N Ydieresis ; B -21 -2 562 885 ;
|
||||
C -1 ; WX 592 ; N Zacute ; B 49 -1 551 905 ;
|
||||
C -1 ; WX 528 ; N zacute ; B 45 -22 487 684 ;
|
||||
C -1 ; WX 592 ; N Zdotaccent ; B 49 -1 551 866 ;
|
||||
C -1 ; WX 528 ; N zdotaccent ; B 45 -22 487 632 ;
|
||||
C -1 ; WX 592 ; N Zcaron ; B 49 -1 551 917 ;
|
||||
C -1 ; WX 528 ; N zcaron ; B 45 -22 487 688 ;
|
||||
C -1 ; WX 915 ; N AEacute ; B -11 -16 864 904 ;
|
||||
C -1 ; WX 888 ; N aeacute ; B 38 -23 846 670 ;
|
||||
C -1 ; WX 617 ; N Oslashacute ; B 43 -41 574 912 ;
|
||||
C -1 ; WX 583 ; N oslashacute ; B 40 -73 543 697 ;
|
||||
C -1 ; WX 415 ; N dotlessj ; B -12 -236 344 478 ;
|
||||
C -1 ; WX 281 ; N circumflex ; B 0 558 282 746 ;
|
||||
C -1 ; WX 281 ; N caron ; B 0 558 282 746 ;
|
||||
C -1 ; WX 281 ; N breve ; B 0 585 282 746 ;
|
||||
C -1 ; WX 132 ; N dotaccent ; B 0 600 133 729 ;
|
||||
C -1 ; WX 214 ; N ring ; B 0 547 215 780 ;
|
||||
C -1 ; WX 211 ; N ogonek ; B 0 -145 212 13 ;
|
||||
C -1 ; WX 283 ; N tilde ; B 0 583 284 701 ;
|
||||
C -1 ; WX 352 ; N hungarumlaut ; B 0 591 353 763 ;
|
||||
C -1 ; WX 185 ; N uni0312 ; B 28 474 152 694 ;
|
||||
C -1 ; WX 185 ; N uni0315 ; B 38 470 162 690 ;
|
||||
C -1 ; WX 192 ; N uni0326 ; B 32 -253 156 -33 ;
|
||||
C -1 ; WX 666 ; N mu ; B 24 -219 643 487 ;
|
||||
C -1 ; WX 643 ; N Wgrave ; B 8 0 614 895 ;
|
||||
C -1 ; WX 678 ; N wgrave ; B 5 -10 674 688 ;
|
||||
C -1 ; WX 643 ; N Wacute ; B 8 0 614 898 ;
|
||||
C -1 ; WX 678 ; N wacute ; B 5 -10 674 682 ;
|
||||
C -1 ; WX 643 ; N Wdieresis ; B 8 0 614 868 ;
|
||||
C -1 ; WX 678 ; N wdieresis ; B 5 -10 674 649 ;
|
||||
C -1 ; WX 561 ; N Ygrave ; B -21 -2 562 900 ;
|
||||
C -1 ; WX 592 ; N ygrave ; B 0 -232 596 666 ;
|
||||
C -1 ; WX 611 ; N endash ; B 50 270 551 391 ;
|
||||
C -1 ; WX 1113 ; N emdash ; B 51 270 1052 391 ;
|
||||
C -1 ; WX 265 ; N quoteleft ; B 41 390 217 704 ;
|
||||
C -1 ; WX 264 ; N quoteright ; B 54 390 230 704 ;
|
||||
C -1 ; WX 274 ; N quotesinglbase ; B 46 -138 223 176 ;
|
||||
C -1 ; WX 470 ; N quotedblleft ; B 41 390 422 704 ;
|
||||
C -1 ; WX 469 ; N quotedblright ; B 54 390 436 704 ;
|
||||
C -1 ; WX 479 ; N quotedblbase ; B 46 -138 428 176 ;
|
||||
C -1 ; WX 389 ; N dagger ; B 30 -16 359 724 ;
|
||||
C -1 ; WX 396 ; N daggerdbl ; B 35 -16 364 728 ;
|
||||
C -1 ; WX 316 ; N bullet ; B 50 246 266 479 ;
|
||||
C -1 ; WX 1063 ; N ellipsis ; B 52 -3 1016 245 ;
|
||||
C -1 ; WX 897 ; N perthousand ; B 33 -230 873 828 ;
|
||||
C -1 ; WX 296 ; N guilsinglleft ; B 44 149 232 434 ;
|
||||
C -1 ; WX 295 ; N guilsinglright ; B 63 149 251 434 ;
|
||||
C -1 ; WX 486 ; N fraction ; B -11 -53 501 748 ;
|
||||
C -1 ; WX 732 ; N Euro ; B 31 71 683 590 ;
|
||||
C -1 ; WX 757 ; N trademark ; B 60 303 703 693 ;
|
||||
C -1 ; WX 585 ; N partialdiff ; B 36 -47 553 772 ;
|
||||
C -1 ; WX 564 ; N product ; B 26 -17 534 707 ;
|
||||
C -1 ; WX 577 ; N minus ; B 63 282 514 395 ;
|
||||
C -1 ; WX 565 ; N approxequal ; B 59 137 513 522 ;
|
||||
C -1 ; WX 593 ; N notequal ; B 44 71 554 644 ;
|
||||
C -1 ; WX 1041 ; N fi ; B 20 -42 1041 702 ;
|
||||
C -1 ; WX 1013 ; N fl ; B 20 -29 1011 702 ;
|
||||
C -1 ; WX 292 ; N .notdef ; B 0 0 0 0 ;
|
||||
C -1 ; WX 0 ; N .null ; B 0 0 0 0 ;
|
||||
C -1 ; WX 292 ; N nonmarkingreturn ; B 0 0 0 0 ;
|
||||
EndCharMetrics
|
||||
StartKernData
|
||||
StartKernPairs 6408
|
||||
KPX quotedbl period -104
|
||||
KPX quotedbl comma -103
|
||||
KPX quotedbl Jcircumflex -34
|
||||
KPX quotedbl Aogonek -31
|
||||
KPX quotedbl Abreve -31
|
||||
KPX quotedbl Amacron -31
|
||||
KPX quotedbl AEacute -31
|
||||
KPX quotedbl Aacute -31
|
||||
KPX quotedbl Acircumflex -31
|
||||
KPX quotedbl Atilde -31
|
||||
KPX quotedbl Agrave -31
|
||||
KPX quotedbl Aring -31
|
||||
KPX quotedbl Adieresis -31
|
||||
KPX quotedbl AE -31
|
||||
KPX quotedbl J -34
|
||||
KPX quotedbl A -31
|
||||
KPX quotedbl quotedblbase -117
|
||||
KPX quotedbl quotesinglbase -117
|
||||
KPX quotedbl ellipsis -104
|
||||
KPX quotedbl slash -73
|
||||
KPX quotedbl ampersand -22
|
||||
KPX quotedbl four -27
|
||||
KPX ampersand Ycircumflex -40
|
||||
KPX ampersand Ygrave -40
|
||||
KPX ampersand Ydieresis -40
|
||||
KPX ampersand Yacute -40
|
||||
KPX ampersand Y -40
|
||||
KPX ampersand V -36
|
||||
KPX quotesingle period -97
|
||||
KPX quotesingle comma -97
|
||||
KPX quotesingle Jcircumflex -34
|
||||
KPX quotesingle Aogonek -31
|
||||
KPX quotesingle Abreve -31
|
||||
KPX quotesingle Amacron -31
|
||||
KPX hyphen T -28
|
||||
KPX hyphen one -68
|
||||
KPX hyphen B -25
|
||||
KPX hyphen seven -56
|
||||
KPX slash rcommaaccent -27
|
||||
KPX slash ncommaaccent -29
|
||||
KPX slash gcommaaccent -61
|
||||
KPX slash Jcircumflex -29
|
||||
KPX slash iogonek -26
|
||||
KPX slash ibreve -26
|
||||
KPX slash imacron -26
|
||||
KPX slash itilde -26
|
||||
KPX slash oslashacute -54
|
||||
KPX slash nacute -29
|
||||
KPX slash eng -29
|
||||
KPX slash ncaron -29
|
||||
KPX slash racute -27
|
||||
KPX slash scedilla -43
|
||||
KPX slash scircumflex -43
|
||||
KPX slash sacute -43
|
||||
KPX slash rcaron -27
|
||||
KPX slash ohungarumlaut -54
|
||||
KPX slash obreve -54
|
||||
KPX slash omacron -54
|
||||
KPX slash wgrave -23
|
||||
KPX slash wcircumflex -23
|
||||
KPX slash wdieresis -23
|
||||
KPX slash wacute -23
|
||||
KPX slash zdotaccent -41
|
||||
KPX J ebreve -32
|
||||
KPX J emacron -32
|
||||
KPX J edieresis -32
|
||||
KPX J ecircumflex -32
|
||||
KPX J egrave -32
|
||||
KPX J eacute -32
|
||||
KPX J e -32
|
||||
KPX J Aogonek -34
|
||||
KPX J Abreve -34
|
||||
KPX J Amacron -34
|
||||
KPX J AEacute -34
|
||||
KPX J Aacute -34
|
||||
KPX J Acircumflex -34
|
||||
KPX J Atilde -34
|
||||
KPX J Agrave -34
|
||||
KPX J Aring -34
|
||||
KPX J Adieresis -34
|
||||
KPX J AE -34
|
||||
KPX J A -34
|
||||
KPX J comma -29
|
||||
KPX J period -30
|
||||
KPX J v -29
|
||||
KPX J hyphen -30
|
||||
KPX J quotedblbase -34
|
||||
KPX J quotesinglbase -34
|
||||
KPX J guilsinglright -25
|
||||
KPX J guilsinglleft -25
|
||||
KPX J emdash -30
|
||||
KPX J endash -30
|
||||
KPX J guillemotright -25
|
||||
KPX J guillemotleft -25
|
||||
KPX J germandbls -36
|
||||
KPX J ellipsis -30
|
||||
KPX J slash -34
|
||||
KPX J p -28
|
||||
KPX J m -35
|
||||
KPX J b 54
|
||||
KPX K ycircumflex -60
|
||||
KPX K ygrave -60
|
||||
KPX K ydieresis -60
|
||||
KPX K yacute -60
|
||||
KPX K y -60
|
||||
KPX K wgrave -36
|
||||
KPX K wcircumflex -36
|
||||
KPX K wdieresis -36
|
||||
KPX K wacute -36
|
||||
KPX K w -36
|
||||
KPX K uogonek -25
|
||||
KPX K uhungarumlaut -25
|
||||
KPX K uring -25
|
||||
KPX K ubreve -25
|
||||
KPX K umacron -25
|
||||
KPX K utilde -25
|
||||
KPX K udieresis -25
|
||||
KPX K ucircumflex -25
|
||||
KPX K ugrave -25
|
||||
KPX K uacute -25
|
||||
KPX K u -25
|
||||
KPX K q -23
|
||||
KPX K oslashacute -28
|
||||
KPX K ohungarumlaut -28
|
||||
KPX K obreve -28
|
||||
KPX K omacron -28
|
||||
KPX K otilde -28
|
||||
KPX K odieresis -28
|
||||
KPX K ocircumflex -28
|
||||
KPX K ograve -28
|
||||
KPX K oacute -28
|
||||
KPX K eth -28
|
||||
KPX K oe -28
|
||||
KPX K oslash -28
|
||||
KPX K o -28
|
||||
KPX K dcaron -24
|
||||
KPX K d -24
|
||||
KPX K ccaron -27
|
||||
KPX K cdotaccent -27
|
||||
KPX K ccircumflex -27
|
||||
KPX K cacute -27
|
||||
KPX K ccedilla -27
|
||||
KPX K c -27
|
||||
KPX K ecaron -27
|
||||
KPX K eogonek -27
|
||||
KPX K edotaccent -27
|
||||
KPX K ebreve -27
|
||||
KPX K emacron -27
|
||||
KPX K edieresis -27
|
||||
KPX K ecircumflex -27
|
||||
KPX K egrave -27
|
||||
KPX K eacute -27
|
||||
KPX K e -27
|
||||
KPX K v -49
|
||||
KPX K hyphen -38
|
||||
KPX K guilsinglleft -24
|
||||
KPX K emdash -38
|
||||
KPX K endash -38
|
||||
KPX K guillemotleft -24
|
||||
KPX K b 49
|
||||
KPX L ycircumflex -36
|
||||
KPX L ygrave -36
|
||||
KPX L ydieresis -36
|
||||
KPX L yacute -36
|
||||
KPX L y -36
|
||||
KPX L wgrave -23
|
||||
KPX L wcircumflex -23
|
||||
KPX L wdieresis -23
|
||||
KPX L wacute -23
|
||||
KPX L w -23
|
||||
KPX L V -43
|
||||
KPX L Tcommaaccent -36
|
||||
KPX L Tbar -36
|
||||
KPX L Tcaron -36
|
||||
KPX L T -36
|
||||
KPX L quoteright -49
|
||||
KPX L v -32
|
||||
KPX L quoteleft -54
|
||||
KPX L quotedblright -49
|
||||
KPX L quotedblleft -54
|
||||
KPX L trademark -29
|
||||
KPX L backslash -50
|
||||
KPX L asterisk -30
|
||||
KPX trademark Aring -24
|
||||
KPX trademark Adieresis -24
|
||||
KPX trademark Yacute 29
|
||||
KPX trademark AE -24
|
||||
KPX trademark Y 29
|
||||
KPX trademark A -24
|
||||
KPX trademark b 31
|
||||
EndKernPairs
|
||||
EndKernData
|
||||
EndFontMetrics
|
||||
23
samples/Adobe Font Metrics/lambda.afm
Normal file
23
samples/Adobe Font Metrics/lambda.afm
Normal file
@@ -0,0 +1,23 @@
|
||||
StartFontMetrics 2.0
|
||||
Comment Generated by FontForge 20170719
|
||||
Comment Creation Date: Sun Jul 23 23:14:02 2017
|
||||
FontName Greek_Lambda_Character-Regular
|
||||
FullName Greek_Lambda_Character Regular
|
||||
FamilyName Greek_Lambda_Character
|
||||
Weight Regular
|
||||
Notice (NONE. NADA. PUBLIC DOMAIN, BOI)
|
||||
ItalicAngle 0
|
||||
IsFixedPitch false
|
||||
UnderlinePosition -175
|
||||
UnderlineThickness 90
|
||||
Version 020.017
|
||||
EncodingScheme ISO10646-1
|
||||
FontBBox 33 -177 566 760
|
||||
StartCharMetrics 5
|
||||
C 13 ; WX 602 ; N uni000D ; B 0 0 0 0 ;
|
||||
C 32 ; WX 602 ; N space ; B 0 0 0 0 ;
|
||||
C -1 ; WX 602 ; N lambda ; B 33 0 566 760 ;
|
||||
C -1 ; WX 602 ; N .notdef ; B 50 -177 551 706 ;
|
||||
C -1 ; WX 0 ; N NULL ; B 0 0 0 0 ;
|
||||
EndCharMetrics
|
||||
EndFontMetrics
|
||||
2
samples/C++/grpc.pb.cc
Normal file
2
samples/C++/grpc.pb.cc
Normal file
@@ -0,0 +1,2 @@
|
||||
// Generated by the gRPC protobuf plugin.
|
||||
// If you make any local change, they will be lost.
|
||||
125
samples/C++/hello.grpc.pb.h
Normal file
125
samples/C++/hello.grpc.pb.h
Normal file
@@ -0,0 +1,125 @@
|
||||
// Generated by the gRPC C++ plugin.
|
||||
// If you make any local change, they will be lost.
|
||||
// source: hello.proto
|
||||
#ifndef GRPC_hello_2eproto__INCLUDED
|
||||
#define GRPC_hello_2eproto__INCLUDED
|
||||
|
||||
#include "hello.pb.h"
|
||||
|
||||
#include <grpc++/impl/codegen/async_stream.h>
|
||||
#include <grpc++/impl/codegen/async_unary_call.h>
|
||||
#include <grpc++/impl/codegen/method_handler_impl.h>
|
||||
#include <grpc++/impl/codegen/proto_utils.h>
|
||||
#include <grpc++/impl/codegen/rpc_method.h>
|
||||
#include <grpc++/impl/codegen/service_type.h>
|
||||
#include <grpc++/impl/codegen/status.h>
|
||||
#include <grpc++/impl/codegen/stub_options.h>
|
||||
#include <grpc++/impl/codegen/sync_stream.h>
|
||||
|
||||
namespace grpc {
|
||||
class CompletionQueue;
|
||||
class Channel;
|
||||
class RpcService;
|
||||
class ServerCompletionQueue;
|
||||
class ServerContext;
|
||||
} // namespace grpc
|
||||
|
||||
class HelloService final {
|
||||
public:
|
||||
class StubInterface {
|
||||
public:
|
||||
virtual ~StubInterface() {}
|
||||
virtual ::grpc::Status SayHello(::grpc::ClientContext* context, const ::HelloRequest& request, ::HelloResponse* response) = 0;
|
||||
std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::HelloResponse>> AsyncSayHello(::grpc::ClientContext* context, const ::HelloRequest& request, ::grpc::CompletionQueue* cq) {
|
||||
return std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::HelloResponse>>(AsyncSayHelloRaw(context, request, cq));
|
||||
}
|
||||
private:
|
||||
virtual ::grpc::ClientAsyncResponseReaderInterface< ::HelloResponse>* AsyncSayHelloRaw(::grpc::ClientContext* context, const ::HelloRequest& request, ::grpc::CompletionQueue* cq) = 0;
|
||||
};
|
||||
class Stub final : public StubInterface {
|
||||
public:
|
||||
Stub(const std::shared_ptr< ::grpc::ChannelInterface>& channel);
|
||||
::grpc::Status SayHello(::grpc::ClientContext* context, const ::HelloRequest& request, ::HelloResponse* response) override;
|
||||
std::unique_ptr< ::grpc::ClientAsyncResponseReader< ::HelloResponse>> AsyncSayHello(::grpc::ClientContext* context, const ::HelloRequest& request, ::grpc::CompletionQueue* cq) {
|
||||
return std::unique_ptr< ::grpc::ClientAsyncResponseReader< ::HelloResponse>>(AsyncSayHelloRaw(context, request, cq));
|
||||
}
|
||||
|
||||
private:
|
||||
std::shared_ptr< ::grpc::ChannelInterface> channel_;
|
||||
::grpc::ClientAsyncResponseReader< ::HelloResponse>* AsyncSayHelloRaw(::grpc::ClientContext* context, const ::HelloRequest& request, ::grpc::CompletionQueue* cq) override;
|
||||
const ::grpc::RpcMethod rpcmethod_SayHello_;
|
||||
};
|
||||
static std::unique_ptr<Stub> NewStub(const std::shared_ptr< ::grpc::ChannelInterface>& channel, const ::grpc::StubOptions& options = ::grpc::StubOptions());
|
||||
|
||||
class Service : public ::grpc::Service {
|
||||
public:
|
||||
Service();
|
||||
virtual ~Service();
|
||||
virtual ::grpc::Status SayHello(::grpc::ServerContext* context, const ::HelloRequest* request, ::HelloResponse* response);
|
||||
};
|
||||
template <class BaseClass>
|
||||
class WithAsyncMethod_SayHello : public BaseClass {
|
||||
private:
|
||||
void BaseClassMustBeDerivedFromService(const Service *service) {}
|
||||
public:
|
||||
WithAsyncMethod_SayHello() {
|
||||
::grpc::Service::MarkMethodAsync(0);
|
||||
}
|
||||
~WithAsyncMethod_SayHello() override {
|
||||
BaseClassMustBeDerivedFromService(this);
|
||||
}
|
||||
// disable synchronous version of this method
|
||||
::grpc::Status SayHello(::grpc::ServerContext* context, const ::HelloRequest* request, ::HelloResponse* response) final override {
|
||||
abort();
|
||||
return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
|
||||
}
|
||||
void RequestSayHello(::grpc::ServerContext* context, ::HelloRequest* request, ::grpc::ServerAsyncResponseWriter< ::HelloResponse>* response, ::grpc::CompletionQueue* new_call_cq, ::grpc::ServerCompletionQueue* notification_cq, void *tag) {
|
||||
::grpc::Service::RequestAsyncUnary(0, context, request, response, new_call_cq, notification_cq, tag);
|
||||
}
|
||||
};
|
||||
typedef WithAsyncMethod_SayHello<Service > AsyncService;
|
||||
template <class BaseClass>
|
||||
class WithGenericMethod_SayHello : public BaseClass {
|
||||
private:
|
||||
void BaseClassMustBeDerivedFromService(const Service *service) {}
|
||||
public:
|
||||
WithGenericMethod_SayHello() {
|
||||
::grpc::Service::MarkMethodGeneric(0);
|
||||
}
|
||||
~WithGenericMethod_SayHello() override {
|
||||
BaseClassMustBeDerivedFromService(this);
|
||||
}
|
||||
// disable synchronous version of this method
|
||||
::grpc::Status SayHello(::grpc::ServerContext* context, const ::HelloRequest* request, ::HelloResponse* response) final override {
|
||||
abort();
|
||||
return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
|
||||
}
|
||||
};
|
||||
template <class BaseClass>
|
||||
class WithStreamedUnaryMethod_SayHello : public BaseClass {
|
||||
private:
|
||||
void BaseClassMustBeDerivedFromService(const Service *service) {}
|
||||
public:
|
||||
WithStreamedUnaryMethod_SayHello() {
|
||||
::grpc::Service::MarkMethodStreamed(0,
|
||||
new ::grpc::StreamedUnaryHandler< ::HelloRequest, ::HelloResponse>(std::bind(&WithStreamedUnaryMethod_SayHello<BaseClass>::StreamedSayHello, this, std::placeholders::_1, std::placeholders::_2)));
|
||||
}
|
||||
~WithStreamedUnaryMethod_SayHello() override {
|
||||
BaseClassMustBeDerivedFromService(this);
|
||||
}
|
||||
// disable regular version of this method
|
||||
::grpc::Status SayHello(::grpc::ServerContext* context, const ::HelloRequest* request, ::HelloResponse* response) final override {
|
||||
abort();
|
||||
return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
|
||||
}
|
||||
// replace default version of method with streamed unary
|
||||
virtual ::grpc::Status StreamedSayHello(::grpc::ServerContext* context, ::grpc::ServerUnaryStreamer< ::HelloRequest,::HelloResponse>* server_unary_streamer) = 0;
|
||||
};
|
||||
typedef WithStreamedUnaryMethod_SayHello<Service > StreamedUnaryService;
|
||||
typedef Service SplitStreamedService;
|
||||
typedef WithStreamedUnaryMethod_SayHello<Service > StreamedService;
|
||||
};
|
||||
|
||||
|
||||
#endif // GRPC_hello_2eproto__INCLUDED
|
||||
|
||||
27
samples/C/asm.h
Normal file
27
samples/C/asm.h
Normal file
@@ -0,0 +1,27 @@
|
||||
/* CarbonOS System/Kernel
|
||||
* Copyright 2015-2017 David Aylaian
|
||||
* Licensed under Apache 2.0: https://github.com/DavidAylaian/CarbonOS/blob/master/LICENSE.md
|
||||
*/
|
||||
|
||||
#ifndef ASM_H
|
||||
#define ASM_H
|
||||
|
||||
#include <stdint.h>
|
||||
|
||||
// macros for enabling and disabling interrupts
|
||||
#define enable() asm("sti");
|
||||
#define disable() asm("cli");
|
||||
|
||||
// inb instruction
|
||||
uint8_t inb (uint16_t port) {
|
||||
uint8_t val;
|
||||
asm volatile ("inb %0, %1" : "=a"(val): "Nd"(port));
|
||||
return val;
|
||||
}
|
||||
|
||||
// outb instruction
|
||||
void outb (uint16_t port, uint8_t val) {
|
||||
asm volatile ("outb %1, %0" : : "a"(val), "Nd"(port));
|
||||
}
|
||||
|
||||
#endif
|
||||
25
samples/C/cpuid.h
Normal file
25
samples/C/cpuid.h
Normal file
@@ -0,0 +1,25 @@
|
||||
#ifndef CPUID_H
|
||||
#define CPUID_H
|
||||
|
||||
#include "misc.h"
|
||||
|
||||
static inline void do_cpuid(dword_t *eax, dword_t *ebx, dword_t *ecx, dword_t *edx) {
|
||||
dword_t leaf = *eax;
|
||||
switch (leaf) {
|
||||
case 0:
|
||||
*eax = 0x01; // we support barely anything
|
||||
*ebx = 0x756e6547; // Genu
|
||||
*edx = 0x49656e69; // ineI
|
||||
*ecx = 0x6c65746e; // ntel
|
||||
break;
|
||||
default: // if leaf is too high, use highest supported leaf
|
||||
case 1:
|
||||
*eax = 0x0; // say nothing about cpu model number
|
||||
*ebx = 0x0; // processor number 0, flushes 0 bytes on clflush
|
||||
*ecx = 0b00000000000000000000000000000000; // we support none of the features in ecx
|
||||
*edx = 0b00000000000000000000000000000000; // we also support none of the features in edx
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
#endif
|
||||
404
samples/CWeb/sat-life.w
Normal file
404
samples/CWeb/sat-life.w
Normal file
@@ -0,0 +1,404 @@
|
||||
\datethis
|
||||
@*Intro. This program generates clauses for the transition relation
|
||||
from time $t$ to time $t+1$ in Conway's Game of Life, assuming that
|
||||
all of the potentially live cells at time $t$ belong to a pattern
|
||||
that's specified in |stdin|. The pattern is defined by one or more
|
||||
lines representing rows of cells, where each line has `\..' in a
|
||||
cell that's guaranteed to be dead at time~$t$, otherwise it has `\.*'.
|
||||
The time is specified separately as a command-line parameter.
|
||||
|
||||
The Boolean variable for cell $(x,y)$ at time $t$ is named by its
|
||||
so-called ``xty code,'' namely by the decimal value of~$x$, followed
|
||||
by a code letter for~$t$, followed by the decimal value of~$y$. For
|
||||
example, if $x=10$ and $y=11$ and $t=0$, the variable that indicates
|
||||
liveness of the cell is \.{10a11}; and the corresponding variable
|
||||
for $t=1$ is \.{10b11}.
|
||||
|
||||
Up to 19 auxiliary variables are used together with each xty code,
|
||||
in order to construct clauses that define the successor state.
|
||||
The names of these variables are obtained by appending one of
|
||||
the following two-character combinations to the xty code:
|
||||
\.{A2}, \.{A3}, \.{A4},
|
||||
\.{B1}, \.{B2}, \.{B3}, \.{B4},
|
||||
\.{C1}, \.{C2}, \.{C3}, \.{C4},
|
||||
\.{D1}, \.{D2},
|
||||
\.{E1}, \.{E2},
|
||||
\.{F1}, \.{F2},
|
||||
\.{G1}, \.{G2}.
|
||||
These variables are derived from the Bailleux--Boufkhad method
|
||||
of encoding cardinality constraints:
|
||||
The auxiliary variable \.{A$k$} stands for the condition
|
||||
``at least $k$ of the eight neighbors are alive.'' Similarly,
|
||||
\.{B$k$} stands for ``at least $k$ of the first four neighbors
|
||||
are alive,'' and \.{C$k$} accounts for the other four neighbors.
|
||||
Codes \.D, \.E, \.F, and~\.G refer to pairs of neighbors.
|
||||
Thus, for instance, \.{10a11C2} means that at least two of the
|
||||
last four neighbors of cell $(10,11)$ are alive.
|
||||
|
||||
Those auxiliary variables receive values by means of up to 77 clauses per cell.
|
||||
For example, if $u$ and~$v$ are the neighbors of cell~$z$ that correspond
|
||||
to a pairing of type~\.D, there are six clauses
|
||||
$$\bar u d_1,\quad
|
||||
\bar v d_1,\quad
|
||||
\bar u\bar v d_2,\quad
|
||||
u v\bar d_1,\quad
|
||||
u\bar d_2,\quad
|
||||
v\bar d_2.$$
|
||||
The sixteen clauses
|
||||
$$\displaylines{\hfill
|
||||
\bar d_1b_1,\quad
|
||||
\bar e_1b_1,\quad
|
||||
\bar d_2b_2,\quad
|
||||
\bar d_1\bar e_1b_2,\quad
|
||||
\bar e_2b_2,\quad
|
||||
\bar d_2\bar e_1b_3,\quad
|
||||
\bar d_1\bar e_2b_3,\quad
|
||||
\bar d_2\bar e_2b_4,
|
||||
\hfill\cr\hfill
|
||||
d_1e_1\bar b_1,\quad
|
||||
d_1e_2\bar b_2,\quad
|
||||
d_2e_1\bar b_2,\quad
|
||||
d_1\bar b_3,\quad
|
||||
d_2e_2\bar b_3,\quad
|
||||
e_1\bar b_3,\quad
|
||||
d_2\bar b_4,\quad
|
||||
e_2\bar b_4
|
||||
\hfill}$$
|
||||
define $b$ variables from $d$'s and $e$'s; and another sixteen
|
||||
define $c$'s from $f$'s and $g$'s in the same fashion.
|
||||
A similar set of 21 clauses will define the $a$'s from the $b$'s and $c$'s.
|
||||
|
||||
Once the $a$'s are defined, thus essentially counting the
|
||||
live neighbors of cell $z$, the next
|
||||
state~$z'$ is defined by five further clauses
|
||||
$$\bar a_4\bar z',\quad
|
||||
a_2\bar z',\quad
|
||||
a_3z\bar z',\quad
|
||||
\bar a_3a_4z',\quad
|
||||
\bar a_2a_4\bar zz'.$$
|
||||
For example, the last of these states that $z'$ will be true
|
||||
(i.e., that cell $z$ will be alive at time $t+1$) if
|
||||
$z$ is alive at time~$t$ and has $\ge2$ live neighbors
|
||||
but not $\ge4$.
|
||||
|
||||
Nearby cells can share auxiliary variables, according to a tricky scheme that
|
||||
is worked out below. In consequence, the actual number of auxiliary variables
|
||||
and clauses per cell is reduced from 19 and $77+5$ to 13 and $57+5$,
|
||||
respectively, except at the boundaries.
|
||||
|
||||
@ So here's the overall outline of the program.
|
||||
|
||||
@d maxx 50 /* maximum number of lines in the pattern supplied by |stdin| */
|
||||
@d maxy 50 /* maximum number of columns per line in |stdin| */
|
||||
|
||||
@c
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
char p[maxx+2][maxy+2]; /* is cell $(x,y)$ potentially alive? */
|
||||
char have_b[maxx+2][maxy+2]; /* did we already generate $b(x,y)$? */
|
||||
char have_d[maxx+2][maxy+2]; /* did we already generate $d(x,y)$? */
|
||||
char have_e[maxx+2][maxy+4]; /* did we already generate $e(x,y)$? */
|
||||
char have_f[maxx+4][maxy+2]; /* did we already generate $f(x-2,y)$? */
|
||||
int tt; /* time as given on the command line */
|
||||
int xmax,ymax; /* the number of rows and columns in the input pattern */
|
||||
int xmin=maxx,ymin=maxy; /* limits in the other direction */
|
||||
char timecode[]="abcdefghijklmnopqrstuvwxyz"@|
|
||||
"ABCDEFGHIJKLMNOPQRSTUVWXYZ"@|
|
||||
"!\"#$%&'()*+,-./:;<=>?@@[\\]^_`{|}~"; /* codes for $0\le t\le83$ */
|
||||
@q$@>
|
||||
char buf[maxy+2]; /* input buffer */
|
||||
unsigned int clause[4]; /* clauses are assembled here */
|
||||
int clauseptr; /* this many literals are in the current clause */
|
||||
@<Subroutines@>@;
|
||||
main(int argc,char*argv[]) {
|
||||
register int j,k,x,y;
|
||||
@<Process the command line@>;
|
||||
@<Input the pattern@>;
|
||||
for (x=xmin-1;x<=xmax+1;x++) for (y=ymin-1;y<=ymax+1;y++) {
|
||||
@<If cell $(x,y)$ is obviously dead at time $t+1$, |continue|@>;
|
||||
a(x,y);
|
||||
zprime(x,y);
|
||||
}
|
||||
}
|
||||
|
||||
@ @<Process the command line@>=
|
||||
if (argc!=2 || sscanf(argv[1],"%d",&tt)!=1) {
|
||||
fprintf(stderr,"Usage: %s t\n",argv[0]);
|
||||
exit(-1);
|
||||
}
|
||||
if (tt<0 || tt>82) {
|
||||
fprintf(stderr,"The time should be between 0 and 82 (not %d)!\n",tt);
|
||||
exit(-2);
|
||||
}
|
||||
|
||||
@ @<Input the pattern@>=
|
||||
for (x=1;;x++) {
|
||||
if (!fgets(buf,maxy+2,stdin)) break;
|
||||
if (x>maxx) {
|
||||
fprintf(stderr,"Sorry, the pattern should have at most %d rows!\n",maxx);
|
||||
exit(-3);
|
||||
}
|
||||
for (y=1;buf[y-1]!='\n';y++) {
|
||||
if (y>maxy) {
|
||||
fprintf(stderr,"Sorry, the pattern should have at most %d columns!\n",
|
||||
maxy);
|
||||
exit(-4);
|
||||
}
|
||||
if (buf[y-1]=='*') {
|
||||
p[x][y]=1;
|
||||
if (y>ymax) ymax=y;
|
||||
if (y<ymin) ymin=y;
|
||||
if (x>xmax) xmax=x;
|
||||
if (x<xmin) xmin=x;
|
||||
}@+else if (buf[y-1]!='.') {
|
||||
fprintf(stderr,"Unexpected character `%c' found in the pattern!\n",
|
||||
buf[y-1]);
|
||||
exit(-5);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ @d pp(xx,yy) ((xx)>=0 && (yy)>=0? p[xx][yy]: 0)
|
||||
|
||||
@<If cell $(x,y)$ is obviously dead at time $t+1$, |continue|@>=
|
||||
if (pp(x-1,y-1)+pp(x-1,y)+pp(x-1,y+1)+
|
||||
pp(x,y-1)+p[x][y]+p[x][y+1]+
|
||||
pp(x+1,y-1)+p[x+1][y]+p[x+1][y+1]<3) continue;
|
||||
|
||||
@ Clauses are assembled in the |clause| array (surprise), where we
|
||||
put encoded literals.
|
||||
|
||||
The code for a literal is an unsigned 32-bit quantity, where the leading
|
||||
bit is 1 if the literal should be complemented. The next three bits
|
||||
specify the type of the literal (0 thru 7 for plain and \.A--\.G);
|
||||
the next three bits specify an integer~$k$; and the next bit is zero.
|
||||
That leaves room for two 12-bit fields, which specify $x$ and $y$.
|
||||
|
||||
Type 0 literals have $k=0$ for the ordinary xty code. However, the
|
||||
value $k=1$ indicates that the time code should be for $t+1$ instead of~$t$.
|
||||
And $k=2$ denotes a special ``tautology'' literal, which is always true.
|
||||
If the tautology literal is complemented, we omit it from the clause;
|
||||
otherwise we omit the entire clause.
|
||||
Finally, $k=7$ denotes an auxiliary literal, used to avoid
|
||||
clauses of length~4.
|
||||
|
||||
Here's a subroutine that outputs the current clause and resets
|
||||
the |clause| array.
|
||||
|
||||
@d taut (2<<25)
|
||||
@d sign (1U<<31)
|
||||
|
||||
@<Sub...@>=
|
||||
void outclause(void) {
|
||||
register int c,k,x,y,p;
|
||||
for (p=0;p<clauseptr;p++)
|
||||
if (clause[p]==taut) goto done;
|
||||
for (p=0;p<clauseptr;p++) if (clause[p]!=taut+sign) {
|
||||
if (clause[p]>>31) printf(" ~");@+else printf(" ");
|
||||
c=(clause[p]>>28)&0x7;
|
||||
k=(clause[p]>>25)&0x7;
|
||||
x=(clause[p]>>12)&0xfff;
|
||||
y=clause[p]&0xfff;
|
||||
if (c) printf("%d%c%d%c%d",
|
||||
x,timecode[tt],y,c+'@@',k);
|
||||
else if (k==7) printf("%d%c%dx",
|
||||
x,timecode[tt],y);
|
||||
else printf("%d%c%d",
|
||||
x,timecode[tt+k],y);
|
||||
}
|
||||
printf("\n");
|
||||
done: clauseptr=0;
|
||||
}
|
||||
|
||||
@ And here's another, which puts a type-0 literal into |clause|.
|
||||
|
||||
@<Sub...@>=
|
||||
void applit(int x,int y,int bar,int k) {
|
||||
if (k==0 && (x<xmin || x>xmax || y<ymin || y>ymax || p[x][y]==0))
|
||||
clause[clauseptr++]=(bar? 0: sign)+taut;
|
||||
else clause[clauseptr++]=(bar? sign:0)+(k<<25)+(x<<12)+y;
|
||||
}
|
||||
|
||||
@ The |d| and |e| subroutines are called for only one-fourth
|
||||
of all cell addresses $(x,y)$. Indeed, one can show that
|
||||
$x$ is always odd, and that $y\bmod4<2$.
|
||||
|
||||
Therefore we remember if we've seen $(x,y)$ before.
|
||||
|
||||
Slight trick: If |yy| is not in range, we avoid generating the
|
||||
clause $\bar d_k$ twice.
|
||||
|
||||
@d newlit(x,y,c,k) clause[clauseptr++]=((c)<<28)+((k)<<25)+((x)<<12)+(y)
|
||||
@d newcomplit(x,y,c,k)
|
||||
clause[clauseptr++]=sign+((c)<<28)+((k)<<25)+((x)<<12)+(y)
|
||||
|
||||
@<Sub...@>=
|
||||
void d(int x,int y) {
|
||||
register x1=x-1,x2=x,yy=y+1;
|
||||
if (have_d[x][y]!=tt+1) {
|
||||
applit(x1,yy,1,0),newlit(x,y,4,1),outclause();
|
||||
applit(x2,yy,1,0),newlit(x,y,4,1),outclause();
|
||||
applit(x1,yy,1,0),applit(x2,yy,1,0),newlit(x,y,4,2),outclause();
|
||||
applit(x1,yy,0,0),applit(x2,yy,0,0),newcomplit(x,y,4,1),outclause();
|
||||
applit(x1,yy,0,0),newcomplit(x,y,4,2),outclause();
|
||||
if (yy>=ymin && yy<=ymax)
|
||||
applit(x2,yy,0,0),newcomplit(x,y,4,2),outclause();
|
||||
have_d[x][y]=tt+1;
|
||||
}
|
||||
}
|
||||
@#
|
||||
void e(int x,int y) {
|
||||
register x1=x-1,x2=x,yy=y-1;
|
||||
if (have_e[x][y]!=tt+1) {
|
||||
applit(x1,yy,1,0),newlit(x,y,5,1),outclause();
|
||||
applit(x2,yy,1,0),newlit(x,y,5,1),outclause();
|
||||
applit(x1,yy,1,0),applit(x2,yy,1,0),newlit(x,y,5,2),outclause();
|
||||
applit(x1,yy,0,0),applit(x2,yy,0,0),newcomplit(x,y,5,1),outclause();
|
||||
applit(x1,yy,0,0),newcomplit(x,y,5,2),outclause();
|
||||
if (yy>=ymin && yy<=ymax)
|
||||
applit(x2,yy,0,0),newcomplit(x,y,5,2),outclause();
|
||||
have_e[x][y]=tt+1;
|
||||
}
|
||||
}
|
||||
|
||||
@ The |f| subroutine can't be shared quite so often. But we
|
||||
do save a factor of~2, because $x+y$ is always even.
|
||||
|
||||
@<Sub...@>=
|
||||
void f(int x,int y) {
|
||||
register xx=x-1,y1=y,y2=y+1;
|
||||
if (have_f[x][y]!=tt+1) {
|
||||
applit(xx,y1,1,0),newlit(x,y,6,1),outclause();
|
||||
applit(xx,y2,1,0),newlit(x,y,6,1),outclause();
|
||||
applit(xx,y1,1,0),applit(xx,y2,1,0),newlit(x,y,6,2),outclause();
|
||||
applit(xx,y1,0,0),applit(xx,y2,0,0),newcomplit(x,y,6,1),outclause();
|
||||
applit(xx,y1,0,0),newcomplit(x,y,6,2),outclause();
|
||||
if (xx>=xmin && xx<=xmax)
|
||||
applit(xx,y2,0,0),newcomplit(x,y,6,2),outclause();
|
||||
have_f[x][y]=tt+1;
|
||||
}
|
||||
}
|
||||
|
||||
@ The |g| subroutine cleans up the dregs, by somewhat tediously
|
||||
locating the two neighbors that weren't handled by |d|, |e|, or~|f|.
|
||||
No sharing is possible here.
|
||||
|
||||
@<Sub...@>=
|
||||
void g(int x,int y) {
|
||||
register x1,x2,y1,y2;
|
||||
if (x&1) x1=x-1,y1=y,x2=x+1,y2=y^1;
|
||||
else x1=x+1,y1=y,x2=x-1,y2=y-1+((y&1)<<1);
|
||||
applit(x1,y1,1,0),newlit(x,y,7,1),outclause();
|
||||
applit(x2,y2,1,0),newlit(x,y,7,1),outclause();
|
||||
applit(x1,y1,1,0),applit(x2,y2,1,0),newlit(x,y,7,2),outclause();
|
||||
applit(x1,y1,0,0),applit(x2,y2,0,0),newcomplit(x,y,7,1),outclause();
|
||||
applit(x1,y1,0,0),newcomplit(x,y,7,2),outclause();
|
||||
applit(x2,y2,0,0),newcomplit(x,y,7,2),outclause();
|
||||
}
|
||||
|
||||
@ Fortunately the |b| subroutine {\it can\/} be shared (since |x| is always
|
||||
odd), thus saving half of the sixteen clauses generated.
|
||||
|
||||
@<Sub...@>=
|
||||
void b(int x,int y) {
|
||||
register j,k,xx=x,y1=y-(y&2),y2=y+(y&2);
|
||||
if (have_b[x][y]!=tt+1) {
|
||||
d(xx,y1);
|
||||
e(xx,y2);
|
||||
for (j=0;j<3;j++) for (k=0;k<3;k++) if (j+k) {
|
||||
if (j) newcomplit(xx,y1,4,j); /* $\bar d_j$ */
|
||||
if (k) newcomplit(xx,y2,5,k); /* $\bar e_k$ */
|
||||
newlit(x,y,2,j+k); /* $b_{j+k}$ */
|
||||
outclause();
|
||||
if (j) newlit(xx,y1,4,3-j); /* $d_{3-j}$ */
|
||||
if (k) newlit(xx,y2,5,3-k); /* $e_{3-k}$ */
|
||||
newcomplit(x,y,2,5-j-k); /* $\bar b_{5-j-k}$ */
|
||||
outclause();
|
||||
}
|
||||
have_b[x][y]=tt+1;
|
||||
}
|
||||
}
|
||||
|
||||
@ The (unshared) |c| subroutine handles the other four neighbors,
|
||||
by working with |f| and |g| instead of |d| and~|e|.
|
||||
|
||||
If |y=0|, the overlap rules set |y1=-1|, which can be problematic.
|
||||
I've decided to avoid this case by omitting |f| when it is
|
||||
guaranteed to be zero.
|
||||
|
||||
@<Sub...@>=
|
||||
void c(int x,int y) {
|
||||
register j,k,x1,y1;
|
||||
if (x&1) x1=x+2,y1=(y-1)|1;
|
||||
else x1=x,y1=y&-2;
|
||||
g(x,y);
|
||||
if (x1-1<xmin || x1-1>xmax || y1+1<ymin || y1>ymax)
|
||||
@<Set |c| equal to |g|@>@;
|
||||
else {
|
||||
f(x1,y1);
|
||||
for (j=0;j<3;j++) for (k=0;k<3;k++) if (j+k) {
|
||||
if (j) newcomplit(x1,y1,6,j); /* $\bar f_j$ */
|
||||
if (k) newcomplit(x,y,7,k); /* $\bar g_k$ */
|
||||
newlit(x,y,3,j+k); /* $c_{j+k}$ */
|
||||
outclause();
|
||||
if (j) newlit(x1,y1,6,3-j); /* $f_{3-j}$ */
|
||||
if (k) newlit(x,y,7,3-k); /* $g_{3-k}$ */
|
||||
newcomplit(x,y,3,5-j-k); /* $\bar c_{5-j-k}$ */
|
||||
outclause();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ @<Set |c| equal to |g|@>=
|
||||
{
|
||||
for (k=1;k<3;k++) {
|
||||
newcomplit(x,y,7,k),newlit(x,y,3,k),outclause(); /* $\bar g_k\lor c_k$ */
|
||||
newlit(x,y,7,k),newcomplit(x,y,3,k),outclause(); /* $g_k\lor\bar c_k$ */
|
||||
}
|
||||
newcomplit(x,y,3,3),outclause(); /* $\bar c_3$ */
|
||||
newcomplit(x,y,3,4),outclause(); /* $\bar c_4$ */
|
||||
}
|
||||
|
||||
@ Totals over all eight neighbors are then deduced by the |a|
|
||||
subroutine.
|
||||
|
||||
@<Sub...@>=
|
||||
void a(int x,int y) {
|
||||
register j,k,xx=x|1;
|
||||
b(xx,y);
|
||||
c(x,y);
|
||||
for (j=0;j<5;j++) for (k=0;k<5;k++) if (j+k>1 && j+k<5) {
|
||||
if (j) newcomplit(xx,y,2,j); /* $\bar b_j$ */
|
||||
if (k) newcomplit(x,y,3,k); /* $\bar c_k$ */
|
||||
newlit(x,y,1,j+k); /* $a_{j+k}$ */
|
||||
outclause();
|
||||
}
|
||||
for (j=0;j<5;j++) for (k=0;k<5;k++) if (j+k>2 && j+k<6 && j*k) {
|
||||
if (j) newlit(xx,y,2,j); /* $b_j$ */
|
||||
if (k) newlit(x,y,3,k); /* $c_k$ */
|
||||
newcomplit(x,y,1,j+k-1); /* $\bar a_{j+k-1}$ */
|
||||
outclause();
|
||||
}
|
||||
}
|
||||
|
||||
@ Finally, as mentioned at the beginning, $z'$ is determined
|
||||
from $z$, $a_2$, $a_3$, and $a_4$.
|
||||
|
||||
I actually generate six clauses, not five, in order to stick to
|
||||
{\mc 3SAT}.
|
||||
|
||||
@<Sub...@>=
|
||||
void zprime(int x,int y) {
|
||||
newcomplit(x,y,1,4),applit(x,y,1,1),outclause(); /* $\bar a_4\bar z'$ */
|
||||
newlit(x,y,1,2),applit(x,y,1,1),outclause(); /* $a_2\bar z'$ */
|
||||
newlit(x,y,1,3),applit(x,y,0,0),applit(x,y,1,1),outclause();
|
||||
/* $a_3z\bar z'$ */
|
||||
newcomplit(x,y,1,3),newlit(x,y,1,4),applit(x,y,0,1),outclause();
|
||||
/* $\bar a_3a_4z'$ */
|
||||
applit(x,y,0,7),newcomplit(x,y,1,2),newlit(x,y,1,4),outclause();
|
||||
/* $x\bar a_2a_4$ */
|
||||
applit(x,y,1,7),applit(x,y,1,0),applit(x,y,0,1),outclause();
|
||||
/* $\bar x\bar zz'$ */
|
||||
}
|
||||
|
||||
@*Index.
|
||||
24
samples/Closure Templates/example.soy
Normal file
24
samples/Closure Templates/example.soy
Normal file
@@ -0,0 +1,24 @@
|
||||
{namespace Exmaple}
|
||||
|
||||
/**
|
||||
* Example
|
||||
*/
|
||||
{template .foo}
|
||||
{@param count: string}
|
||||
{@param? name: int}
|
||||
|
||||
{if isNonnull($name)}
|
||||
<h1>{$name}</h1>
|
||||
{/if}
|
||||
|
||||
<div class="content">
|
||||
{switch count}
|
||||
{case 0}
|
||||
{call Empty.view}
|
||||
{param count: $count /}
|
||||
{/call}
|
||||
{default}
|
||||
<h2>Wow, so many!</h2>
|
||||
{/switch}
|
||||
</div>
|
||||
{/template}
|
||||
File diff suppressed because it is too large
Load Diff
440
samples/D/aa.d
Normal file
440
samples/D/aa.d
Normal file
@@ -0,0 +1,440 @@
|
||||
/**
|
||||
* Implementation of associative arrays.
|
||||
*
|
||||
* Copyright: Martin Nowak 2015 -.
|
||||
* License: $(LINK2 http://www.boost.org/LICENSE_1_0.txt, Boost License 1.0)
|
||||
* Authors: Martin Nowak
|
||||
*/
|
||||
module core.aa;
|
||||
|
||||
import core.memory : GC;
|
||||
|
||||
private
|
||||
{
|
||||
// grow threshold
|
||||
enum GROW_NUM = 4;
|
||||
enum GROW_DEN = 5;
|
||||
// shrink threshold
|
||||
enum SHRINK_NUM = 1;
|
||||
enum SHRINK_DEN = 8;
|
||||
// grow factor
|
||||
enum GROW_FAC = 4;
|
||||
// growing the AA doubles it's size, so the shrink threshold must be
|
||||
// smaller than half the grow threshold to have a hysteresis
|
||||
static assert(GROW_FAC * SHRINK_NUM * GROW_DEN < GROW_NUM * SHRINK_DEN);
|
||||
// initial load factor (for literals), mean of both thresholds
|
||||
enum INIT_NUM = (GROW_DEN * SHRINK_NUM + GROW_NUM * SHRINK_DEN) / 2;
|
||||
enum INIT_DEN = SHRINK_DEN * GROW_DEN;
|
||||
|
||||
// magic hash constants to distinguish empty, deleted, and filled buckets
|
||||
enum HASH_EMPTY = 0;
|
||||
enum HASH_DELETED = 0x1;
|
||||
enum HASH_FILLED_MARK = size_t(1) << 8 * size_t.sizeof - 1;
|
||||
}
|
||||
|
||||
enum INIT_NUM_BUCKETS = 8;
|
||||
|
||||
struct AA(Key, Val)
|
||||
{
|
||||
this(size_t sz)
|
||||
{
|
||||
impl = new Impl(nextpow2(sz));
|
||||
}
|
||||
|
||||
@property bool empty() const pure nothrow @safe @nogc
|
||||
{
|
||||
return !length;
|
||||
}
|
||||
|
||||
@property size_t length() const pure nothrow @safe @nogc
|
||||
{
|
||||
return impl is null ? 0 : impl.length;
|
||||
}
|
||||
|
||||
void opIndexAssign(Val val, in Key key)
|
||||
{
|
||||
// lazily alloc implementation
|
||||
if (impl is null)
|
||||
impl = new Impl(INIT_NUM_BUCKETS);
|
||||
|
||||
// get hash and bucket for key
|
||||
immutable hash = calcHash(key);
|
||||
|
||||
// found a value => assignment
|
||||
if (auto p = impl.findSlotLookup(hash, key))
|
||||
{
|
||||
p.entry.val = val;
|
||||
return;
|
||||
}
|
||||
|
||||
auto p = findSlotInsert(hash);
|
||||
if (p.deleted)
|
||||
--deleted;
|
||||
// check load factor and possibly grow
|
||||
else if (++used * GROW_DEN > dim * GROW_NUM)
|
||||
{
|
||||
grow();
|
||||
p = findSlotInsert(hash);
|
||||
assert(p.empty);
|
||||
}
|
||||
|
||||
// update search cache and allocate entry
|
||||
firstUsed = min(firstUsed, cast(uint)(p - buckets.ptr));
|
||||
p.hash = hash;
|
||||
p.entry = new Impl.Entry(key, val); // TODO: move
|
||||
return;
|
||||
}
|
||||
|
||||
ref inout(Val) opIndex(in Key key) inout @trusted
|
||||
{
|
||||
auto p = opIn_r(key);
|
||||
assert(p !is null);
|
||||
return *p;
|
||||
}
|
||||
|
||||
inout(Val)* opIn_r(in Key key) inout @trusted
|
||||
{
|
||||
if (empty)
|
||||
return null;
|
||||
|
||||
immutable hash = calcHash(key);
|
||||
if (auto p = findSlotLookup(hash, key))
|
||||
return &p.entry.val;
|
||||
return null;
|
||||
}
|
||||
|
||||
bool remove(in Key key)
|
||||
{
|
||||
if (empty)
|
||||
return false;
|
||||
|
||||
immutable hash = calcHash(key);
|
||||
if (auto p = findSlotLookup(hash, key))
|
||||
{
|
||||
// clear entry
|
||||
p.hash = HASH_DELETED;
|
||||
p.entry = null;
|
||||
|
||||
++deleted;
|
||||
if (length * SHRINK_DEN < dim * SHRINK_NUM)
|
||||
shrink();
|
||||
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
Val get(in Key key, lazy Val val)
|
||||
{
|
||||
auto p = opIn_r(key);
|
||||
return p is null ? val : *p;
|
||||
}
|
||||
|
||||
ref Val getOrSet(in Key key, lazy Val val)
|
||||
{
|
||||
// lazily alloc implementation
|
||||
if (impl is null)
|
||||
impl = new Impl(INIT_NUM_BUCKETS);
|
||||
|
||||
// get hash and bucket for key
|
||||
immutable hash = calcHash(key);
|
||||
|
||||
// found a value => assignment
|
||||
if (auto p = impl.findSlotLookup(hash, key))
|
||||
return p.entry.val;
|
||||
|
||||
auto p = findSlotInsert(hash);
|
||||
if (p.deleted)
|
||||
--deleted;
|
||||
// check load factor and possibly grow
|
||||
else if (++used * GROW_DEN > dim * GROW_NUM)
|
||||
{
|
||||
grow();
|
||||
p = findSlotInsert(hash);
|
||||
assert(p.empty);
|
||||
}
|
||||
|
||||
// update search cache and allocate entry
|
||||
firstUsed = min(firstUsed, cast(uint)(p - buckets.ptr));
|
||||
p.hash = hash;
|
||||
p.entry = new Impl.Entry(key, val);
|
||||
return p.entry.val;
|
||||
}
|
||||
|
||||
/**
|
||||
Convert the AA to the type of the builtin language AA.
|
||||
*/
|
||||
Val[Key] toBuiltinAA() pure nothrow
|
||||
{
|
||||
return cast(Val[Key]) _aaFromCoreAA(impl, rtInterface);
|
||||
}
|
||||
|
||||
private:
|
||||
|
||||
private this(inout(Impl)* impl) inout
|
||||
{
|
||||
this.impl = impl;
|
||||
}
|
||||
|
||||
ref Val getLValue(in Key key)
|
||||
{
|
||||
// lazily alloc implementation
|
||||
if (impl is null)
|
||||
impl = new Impl(INIT_NUM_BUCKETS);
|
||||
|
||||
// get hash and bucket for key
|
||||
immutable hash = calcHash(key);
|
||||
|
||||
// found a value => assignment
|
||||
if (auto p = impl.findSlotLookup(hash, key))
|
||||
return p.entry.val;
|
||||
|
||||
auto p = findSlotInsert(hash);
|
||||
if (p.deleted)
|
||||
--deleted;
|
||||
// check load factor and possibly grow
|
||||
else if (++used * GROW_DEN > dim * GROW_NUM)
|
||||
{
|
||||
grow();
|
||||
p = findSlotInsert(hash);
|
||||
assert(p.empty);
|
||||
}
|
||||
|
||||
// update search cache and allocate entry
|
||||
firstUsed = min(firstUsed, cast(uint)(p - buckets.ptr));
|
||||
p.hash = hash;
|
||||
p.entry = new Impl.Entry(key); // TODO: move
|
||||
return p.entry.val;
|
||||
}
|
||||
|
||||
static struct Impl
|
||||
{
|
||||
this(size_t sz)
|
||||
{
|
||||
buckets = allocBuckets(sz);
|
||||
}
|
||||
|
||||
@property size_t length() const pure nothrow @nogc
|
||||
{
|
||||
assert(used >= deleted);
|
||||
return used - deleted;
|
||||
}
|
||||
|
||||
@property size_t dim() const pure nothrow @nogc
|
||||
{
|
||||
return buckets.length;
|
||||
}
|
||||
|
||||
@property size_t mask() const pure nothrow @nogc
|
||||
{
|
||||
return dim - 1;
|
||||
}
|
||||
|
||||
// find the first slot to insert a value with hash
|
||||
inout(Bucket)* findSlotInsert(size_t hash) inout pure nothrow @nogc
|
||||
{
|
||||
for (size_t i = hash & mask, j = 1;; ++j)
|
||||
{
|
||||
if (!buckets[i].filled)
|
||||
return &buckets[i];
|
||||
i = (i + j) & mask;
|
||||
}
|
||||
}
|
||||
|
||||
// lookup a key
|
||||
inout(Bucket)* findSlotLookup(size_t hash, in Key key) inout
|
||||
{
|
||||
for (size_t i = hash & mask, j = 1;; ++j)
|
||||
{
|
||||
if (buckets[i].hash == hash && key == buckets[i].entry.key)
|
||||
return &buckets[i];
|
||||
else if (buckets[i].empty)
|
||||
return null;
|
||||
i = (i + j) & mask;
|
||||
}
|
||||
}
|
||||
|
||||
void grow()
|
||||
{
|
||||
// If there are so many deleted entries, that growing would push us
|
||||
// below the shrink threshold, we just purge deleted entries instead.
|
||||
if (length * SHRINK_DEN < GROW_FAC * dim * SHRINK_NUM)
|
||||
resize(dim);
|
||||
else
|
||||
resize(GROW_FAC * dim);
|
||||
}
|
||||
|
||||
void shrink()
|
||||
{
|
||||
if (dim > INIT_NUM_BUCKETS)
|
||||
resize(dim / GROW_FAC);
|
||||
}
|
||||
|
||||
void resize(size_t ndim) pure nothrow
|
||||
{
|
||||
auto obuckets = buckets;
|
||||
buckets = allocBuckets(ndim);
|
||||
|
||||
foreach (ref b; obuckets)
|
||||
if (b.filled)
|
||||
*findSlotInsert(b.hash) = b;
|
||||
|
||||
firstUsed = 0;
|
||||
used -= deleted;
|
||||
deleted = 0;
|
||||
GC.free(obuckets.ptr); // safe to free b/c impossible to reference
|
||||
}
|
||||
|
||||
static struct Entry
|
||||
{
|
||||
Key key;
|
||||
Val val;
|
||||
}
|
||||
|
||||
static struct Bucket
|
||||
{
|
||||
size_t hash;
|
||||
Entry* entry;
|
||||
|
||||
@property bool empty() const
|
||||
{
|
||||
return hash == HASH_EMPTY;
|
||||
}
|
||||
|
||||
@property bool deleted() const
|
||||
{
|
||||
return hash == HASH_DELETED;
|
||||
}
|
||||
|
||||
@property bool filled() const
|
||||
{
|
||||
return cast(ptrdiff_t) hash < 0;
|
||||
}
|
||||
}
|
||||
|
||||
Bucket[] allocBuckets(size_t dim) @trusted pure nothrow
|
||||
{
|
||||
enum attr = GC.BlkAttr.NO_INTERIOR;
|
||||
immutable sz = dim * Bucket.sizeof;
|
||||
return (cast(Bucket*) GC.calloc(sz, attr))[0 .. dim];
|
||||
}
|
||||
|
||||
Bucket[] buckets;
|
||||
uint used;
|
||||
uint deleted;
|
||||
uint firstUsed;
|
||||
}
|
||||
|
||||
RTInterface* rtInterface()() pure nothrow @nogc
|
||||
{
|
||||
static size_t aaLen(in void* pimpl) pure nothrow @nogc
|
||||
{
|
||||
auto aa = const(AA)(cast(const(Impl)*) pimpl);
|
||||
return aa.length;
|
||||
}
|
||||
|
||||
static void* aaGetY(void** pimpl, in void* pkey)
|
||||
{
|
||||
auto aa = AA(cast(Impl*)*pimpl);
|
||||
auto res = &aa.getLValue(*cast(const(Key*)) pkey);
|
||||
*pimpl = aa.impl; // might have changed
|
||||
return res;
|
||||
}
|
||||
|
||||
static inout(void)* aaInX(inout void* pimpl, in void* pkey)
|
||||
{
|
||||
auto aa = inout(AA)(cast(inout(Impl)*) pimpl);
|
||||
return aa.opIn_r(*cast(const(Key*)) pkey);
|
||||
}
|
||||
|
||||
static bool aaDelX(void* pimpl, in void* pkey)
|
||||
{
|
||||
auto aa = AA(cast(Impl*) pimpl);
|
||||
return aa.remove(*cast(const(Key*)) pkey);
|
||||
}
|
||||
|
||||
static immutable vtbl = RTInterface(&aaLen, &aaGetY, &aaInX, &aaDelX);
|
||||
return cast(RTInterface*)&vtbl;
|
||||
}
|
||||
|
||||
static size_t calcHash(in ref Key key)
|
||||
{
|
||||
return hashOf(key) | HASH_FILLED_MARK;
|
||||
}
|
||||
|
||||
Impl* impl;
|
||||
alias impl this;
|
||||
}
|
||||
|
||||
package extern (C) void* _aaFromCoreAA(void* impl, RTInterface* rtIntf) pure nothrow;
|
||||
|
||||
private:
|
||||
|
||||
struct RTInterface
|
||||
{
|
||||
alias AA = void*;
|
||||
|
||||
size_t function(in AA aa) pure nothrow @nogc len;
|
||||
void* function(AA* aa, in void* pkey) getY;
|
||||
inout(void)* function(inout AA aa, in void* pkey) inX;
|
||||
bool function(AA aa, in void* pkey) delX;
|
||||
}
|
||||
|
||||
unittest
|
||||
{
|
||||
AA!(int, int) aa;
|
||||
assert(aa.length == 0);
|
||||
aa[0] = 1;
|
||||
assert(aa.length == 1 && aa[0] == 1);
|
||||
aa[1] = 2;
|
||||
assert(aa.length == 2 && aa[1] == 2);
|
||||
import core.stdc.stdio;
|
||||
|
||||
int[int] rtaa = aa.toBuiltinAA();
|
||||
assert(rtaa.length == 2);
|
||||
puts("length");
|
||||
assert(rtaa[0] == 1);
|
||||
assert(rtaa[1] == 2);
|
||||
rtaa[2] = 3;
|
||||
|
||||
assert(aa[2] == 3);
|
||||
}
|
||||
|
||||
unittest
|
||||
{
|
||||
auto aa = AA!(int, int)(3);
|
||||
aa[0] = 0;
|
||||
aa[1] = 1;
|
||||
aa[2] = 2;
|
||||
assert(aa.length == 3);
|
||||
}
|
||||
|
||||
//==============================================================================
|
||||
// Helper functions
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
size_t nextpow2(in size_t n) pure nothrow @nogc
|
||||
{
|
||||
import core.bitop : bsr;
|
||||
|
||||
if (n < 2)
|
||||
return 1;
|
||||
return size_t(1) << bsr(n - 1) + 1;
|
||||
}
|
||||
|
||||
pure nothrow @nogc unittest
|
||||
{
|
||||
// 0, 1, 2, 3, 4, 5, 6, 7, 8, 9
|
||||
foreach (const n, const pow2; [1, 1, 2, 4, 4, 8, 8, 8, 8, 16])
|
||||
assert(nextpow2(n) == pow2);
|
||||
}
|
||||
|
||||
T min(T)(T a, T b) pure nothrow @nogc
|
||||
{
|
||||
return a < b ? a : b;
|
||||
}
|
||||
|
||||
T max(T)(T a, T b) pure nothrow @nogc
|
||||
{
|
||||
return b < a ? a : b;
|
||||
}
|
||||
187
samples/D/arrayops.d
Normal file
187
samples/D/arrayops.d
Normal file
@@ -0,0 +1,187 @@
|
||||
/**
|
||||
* Benchmark for array ops.
|
||||
*
|
||||
* Copyright: Copyright Martin Nowak 2016 -.
|
||||
* License: $(LINK2 http://www.boost.org/LICENSE_1_0.txt, Boost License 1.0)
|
||||
* Authors: Martin Nowak
|
||||
*/
|
||||
import core.cpuid, std.algorithm, std.datetime, std.meta, std.stdio, std.string,
|
||||
std.range;
|
||||
|
||||
float[6] getLatencies(T, string op)()
|
||||
{
|
||||
enum N = (64 * (1 << 6) + 64) * T.sizeof;
|
||||
auto a = Array!T(N), b = Array!T(N), c = Array!T(N);
|
||||
float[6] latencies = float.max;
|
||||
foreach (i, ref latency; latencies)
|
||||
{
|
||||
auto len = 1 << i;
|
||||
foreach (_; 1 .. 32)
|
||||
{
|
||||
a[] = 24;
|
||||
b[] = 4;
|
||||
c[] = 2;
|
||||
auto sw = StopWatch(AutoStart.yes);
|
||||
foreach (off; size_t(0) .. size_t(64))
|
||||
{
|
||||
off = off * len + off;
|
||||
enum op = op.replace("const", "2").replace("a",
|
||||
"a[off .. off + len]").replace("b",
|
||||
"b[off .. off + len]").replace("c", "c[off .. off + len]");
|
||||
mixin(op ~ ";");
|
||||
}
|
||||
latency = min(latency, sw.peek.nsecs);
|
||||
}
|
||||
}
|
||||
float[6] res = latencies[] / 1024;
|
||||
return res;
|
||||
}
|
||||
|
||||
float[4] getThroughput(T, string op)()
|
||||
{
|
||||
enum N = (40 * 1024 * 1024 + 64 * T.sizeof) / T.sizeof;
|
||||
auto a = Array!T(N), b = Array!T(N), c = Array!T(N);
|
||||
float[4] latencies = float.max;
|
||||
size_t[4] lengths = [
|
||||
8 * 1024 / T.sizeof, 32 * 1024 / T.sizeof, 512 * 1024 / T.sizeof, 32 * 1024 * 1024 / T
|
||||
.sizeof
|
||||
];
|
||||
foreach (i, ref latency; latencies)
|
||||
{
|
||||
auto len = lengths[i] / 64;
|
||||
foreach (_; 1 .. 4)
|
||||
{
|
||||
a[] = 24;
|
||||
b[] = 4;
|
||||
c[] = 2;
|
||||
auto sw = StopWatch(AutoStart.yes);
|
||||
foreach (off; size_t(0) .. size_t(64))
|
||||
{
|
||||
off = off * len + off;
|
||||
enum op = op.replace("const", "2").replace("a",
|
||||
"a[off .. off + len]").replace("b",
|
||||
"b[off .. off + len]").replace("c", "c[off .. off + len]");
|
||||
mixin(op ~ ";");
|
||||
}
|
||||
immutable nsecs = sw.peek.nsecs;
|
||||
runMasked({latency = min(latency, nsecs);});
|
||||
}
|
||||
}
|
||||
float[4] throughputs = void;
|
||||
runMasked({throughputs = T.sizeof * lengths[] / latencies[];});
|
||||
return throughputs;
|
||||
}
|
||||
|
||||
string[] genOps()
|
||||
{
|
||||
string[] ops;
|
||||
foreach (op1; ["+", "-", "*", "/"])
|
||||
{
|
||||
ops ~= "a " ~ op1 ~ "= b";
|
||||
ops ~= "a " ~ op1 ~ "= const";
|
||||
foreach (op2; ["+", "-", "*", "/"])
|
||||
{
|
||||
ops ~= "a " ~ op1 ~ "= b " ~ op2 ~ " c";
|
||||
ops ~= "a " ~ op1 ~ "= b " ~ op2 ~ " const";
|
||||
}
|
||||
}
|
||||
return ops;
|
||||
}
|
||||
|
||||
void runOp(string op)()
|
||||
{
|
||||
foreach (T; AliasSeq!(ubyte, ushort, uint, ulong, byte, short, int, long, float,
|
||||
double))
|
||||
writefln("%s, %s, %(%.2f, %), %(%s, %)", T.stringof, op,
|
||||
getLatencies!(T, op), getThroughput!(T, op));
|
||||
}
|
||||
|
||||
struct Array(T)
|
||||
{
|
||||
import core.stdc.stdlib : free, malloc;
|
||||
|
||||
this(size_t n)
|
||||
{
|
||||
ary = (cast(T*) malloc(T.sizeof * n))[0 .. n];
|
||||
}
|
||||
|
||||
~this()
|
||||
{
|
||||
free(ary.ptr);
|
||||
}
|
||||
|
||||
T[] ary;
|
||||
alias ary this;
|
||||
}
|
||||
|
||||
version (X86)
|
||||
version = SSE;
|
||||
else version (X86_64)
|
||||
version = SSE;
|
||||
else
|
||||
static assert(0, "unimplemented");
|
||||
|
||||
version (SSE)
|
||||
{
|
||||
uint mxcsr()
|
||||
{
|
||||
uint ret = void;
|
||||
asm
|
||||
{
|
||||
stmxcsr ret;
|
||||
}
|
||||
return ret;
|
||||
}
|
||||
|
||||
void mxcsr(uint val)
|
||||
{
|
||||
asm
|
||||
{
|
||||
ldmxcsr val;
|
||||
}
|
||||
}
|
||||
|
||||
// http://softpixel.com/~cwright/programming/simd/sse.php
|
||||
enum FPU_EXCEPTION_MASKS = 1 << 12 | 1 << 11 | 1 << 10 | 1 << 9 | 1 << 8 | 1 << 7;
|
||||
enum FPU_EXCEPTION_FLAGS = 1 << 5 | 1 << 4 | 1 << 3 | 1 << 2 | 1 << 1 | 1 << 0;
|
||||
|
||||
void maskFPUExceptions()
|
||||
{
|
||||
mxcsr = mxcsr | FPU_EXCEPTION_MASKS;
|
||||
}
|
||||
|
||||
void unmaskFPUExceptions()
|
||||
{
|
||||
mxcsr = mxcsr & ~FPU_EXCEPTION_MASKS;
|
||||
}
|
||||
|
||||
uint FPUExceptionFlags()
|
||||
{
|
||||
return mxcsr & FPU_EXCEPTION_FLAGS;
|
||||
}
|
||||
|
||||
void clearFPUExceptionFlags()
|
||||
{
|
||||
mxcsr = mxcsr & ~FPU_EXCEPTION_FLAGS;
|
||||
}
|
||||
}
|
||||
|
||||
void runMasked(scope void delegate() dg)
|
||||
{
|
||||
assert(FPUExceptionFlags == 0);
|
||||
maskFPUExceptions;
|
||||
dg();
|
||||
clearFPUExceptionFlags;
|
||||
unmaskFPUExceptions;
|
||||
}
|
||||
|
||||
void main()
|
||||
{
|
||||
unmaskFPUExceptions;
|
||||
|
||||
writefln("type, op, %(latency%s, %), %-(throughput%s, %)", iota(6)
|
||||
.map!(i => 1 << i), ["8KB", "32KB", "512KB", "32MB"]);
|
||||
foreach (op; mixin("AliasSeq!(%(%s, %))".format(genOps)))
|
||||
runOp!op;
|
||||
maskFPUExceptions;
|
||||
}
|
||||
3
samples/D/function.d
Normal file
3
samples/D/function.d
Normal file
@@ -0,0 +1,3 @@
|
||||
void foo()
|
||||
{
|
||||
}
|
||||
6
samples/D/hello_world.d
Normal file
6
samples/D/hello_world.d
Normal file
@@ -0,0 +1,6 @@
|
||||
import std.stdio;
|
||||
|
||||
void main()
|
||||
{
|
||||
writeln("Hello World");
|
||||
}
|
||||
7
samples/D/template.d
Normal file
7
samples/D/template.d
Normal file
@@ -0,0 +1,7 @@
|
||||
template Fib(size_t N)
|
||||
{
|
||||
static if (N < 2)
|
||||
enum Fib = size_t(1);
|
||||
else
|
||||
enum Fib = Fib!(N - 2) + Fib!(N - 1);
|
||||
}
|
||||
3
samples/D/template_function.d
Normal file
3
samples/D/template_function.d
Normal file
@@ -0,0 +1,3 @@
|
||||
void bar(T)(T t)
|
||||
{
|
||||
}
|
||||
3
samples/D/unittest1.d
Normal file
3
samples/D/unittest1.d
Normal file
@@ -0,0 +1,3 @@
|
||||
unittest
|
||||
{
|
||||
}
|
||||
3
samples/D/unittest2.d
Normal file
3
samples/D/unittest2.d
Normal file
@@ -0,0 +1,3 @@
|
||||
unittest("optional name")
|
||||
{
|
||||
}
|
||||
20
samples/Easybuild/bzip2-1.0.6-GCC-4.9.2.eb
Normal file
20
samples/Easybuild/bzip2-1.0.6-GCC-4.9.2.eb
Normal file
@@ -0,0 +1,20 @@
|
||||
# not really (there's an EB_bzip2 easyblock), but fine for use in unit tests
|
||||
easyblock = 'ConfigureMake'
|
||||
|
||||
name = 'bzip2'
|
||||
version = '1.0.6'
|
||||
|
||||
homepage = 'http://www.bzip.org/'
|
||||
description = """bzip2 is a freely available, patent free, high-quality data compressor. It typically
|
||||
compresses files to within 10% to 15% of the best available techniques (the PPM family of statistical
|
||||
compressors), whilst being around twice as fast at compression and six times faster at decompression."""
|
||||
|
||||
toolchain = {'name': 'GCC', 'version': '4.9.2'}
|
||||
toolchainopts = {'pic': True}
|
||||
|
||||
sources = [SOURCE_TAR_GZ]
|
||||
source_urls = ['http://www.bzip.org/%(version)s']
|
||||
|
||||
builddependencies = [('gzip', '1.6')]
|
||||
|
||||
moduleclass = 'tools'
|
||||
97
samples/Fantom/sample1.fan
Normal file
97
samples/Fantom/sample1.fan
Normal file
@@ -0,0 +1,97 @@
|
||||
/*
|
||||
* Author: Robert Koeninger
|
||||
* License: WTFPL (http://www.wtfpl.net/)
|
||||
*/
|
||||
|
||||
class Spelling {
|
||||
|
||||
** Load sample text and offer corrections for input
|
||||
static Void main(Str[] args) {
|
||||
text := File.os("big.txt").readAllStr
|
||||
counts := Str:Int[:] { def = 0 }
|
||||
text.split.each |word| { counts[word] += 1 }
|
||||
args.each |arg| { echo(correction(counts, arg)) }
|
||||
}
|
||||
|
||||
static const Range letters := Range.makeInclusive(97, 122)
|
||||
|
||||
** Most probable spelling correction for `word`.
|
||||
static Str correction(Str:Int counts, Str word) {
|
||||
candidates(counts, word).max |x, y| { counts[x] <=> counts[y] }
|
||||
}
|
||||
|
||||
** Generate possible spelling corrections for `word`.
|
||||
static Str[] candidates(Str:Int counts, Str word) {
|
||||
result := known(counts, Str[word])
|
||||
if (result.size > 0) return result
|
||||
|
||||
result = known(counts, edits1(word))
|
||||
if (result.size > 0) return result
|
||||
|
||||
result = known(counts, edits2(word))
|
||||
if (result.size > 0) return result
|
||||
|
||||
return Str[word]
|
||||
}
|
||||
|
||||
** The subset of `words` that appear in the map of `counts`.
|
||||
static Str[] known(Str:Int counts, Str[] words) {
|
||||
words.findAll |word, i| { counts[word] > 0 }.unique
|
||||
}
|
||||
|
||||
** All edits that are one edit away from `word`.
|
||||
static Str[] edits1(Str word) {
|
||||
edits := Str[,]
|
||||
|
||||
for (i := 0; i < word.size; ++i) {
|
||||
edits.add(delete(word, i))
|
||||
|
||||
if (i < word.size - 2) {
|
||||
edits.add(transpose(word, i))
|
||||
}
|
||||
|
||||
edits.addAll(replace(word, i))
|
||||
edits.addAll(insert(word, i))
|
||||
}
|
||||
|
||||
edits = edits.unique
|
||||
edits.remove(word)
|
||||
return edits
|
||||
}
|
||||
|
||||
** Word with `i`th letter removed.
|
||||
static Str delete(Str word, Int i) {
|
||||
left := word.getRange(Range.makeExclusive(0, i))
|
||||
right := word.getRange(Range.makeExclusive(i + 1, word.size))
|
||||
return left + right
|
||||
}
|
||||
|
||||
** Word with `i`th and `i+1`st letter swapped.
|
||||
static Str transpose(Str word, Int i) {
|
||||
left := word.getRange(Range.makeExclusive(0, i))
|
||||
right := word.getRange(Range.makeExclusive(i, word.size))
|
||||
first := right.get(0).toChar
|
||||
second := right.get(1).toChar
|
||||
rest := right.getRange(Range.makeExclusive(2, right.size))
|
||||
return left + second + first + rest
|
||||
}
|
||||
|
||||
** Word with `i`th letter replaced with every other letter.
|
||||
static Str[] replace(Str word, Int i) {
|
||||
left := word.getRange(Range.makeExclusive(0, i))
|
||||
right := word.getRange(Range.makeExclusive(i + 1, word.size))
|
||||
return letters.map |ch| { left + ch.toChar + right }
|
||||
}
|
||||
|
||||
** Word with each letter inserted at `i`.
|
||||
static Str[] insert(Str word, Int i) {
|
||||
left := word.getRange(Range.makeExclusive(0, i))
|
||||
right := word.getRange(Range.makeExclusive(i, word.size))
|
||||
return letters.map |ch| { left + ch.toChar + right }
|
||||
}
|
||||
|
||||
** All edits that are two edits away from `word`.
|
||||
static Str[] edits2(Str word) {
|
||||
(Str[])(edits1(word).map |w| { edits1(w) }.flatten)
|
||||
}
|
||||
}
|
||||
50
samples/Fantom/sample2.fan
Normal file
50
samples/Fantom/sample2.fan
Normal file
@@ -0,0 +1,50 @@
|
||||
/*
|
||||
* Author: Robert Koeninger
|
||||
* License: WTFPL (http://www.wtfpl.net/)
|
||||
*/
|
||||
|
||||
mixin Expr
|
||||
{
|
||||
abstract Obj? eval()
|
||||
}
|
||||
|
||||
class Constant : Expr
|
||||
{
|
||||
Obj? value
|
||||
|
||||
new make(Obj? value) { this.value = value }
|
||||
override Obj? eval() { value }
|
||||
}
|
||||
|
||||
enum class Op
|
||||
{
|
||||
plus,
|
||||
minus
|
||||
}
|
||||
|
||||
class Infix : Expr
|
||||
{
|
||||
Op op
|
||||
Expr left
|
||||
Expr right
|
||||
|
||||
new make(Op op, Expr left, Expr right)
|
||||
{
|
||||
this.op = op
|
||||
this.left = left
|
||||
this.right = right
|
||||
}
|
||||
|
||||
override Obj? eval()
|
||||
{
|
||||
switch (op)
|
||||
{
|
||||
case Op.plus:
|
||||
return (Int)left.eval() + (Int)right.eval()
|
||||
case Op.minus:
|
||||
return (Int)left.eval() - (Int)right.eval()
|
||||
default:
|
||||
throw Err("undefined Op")
|
||||
}
|
||||
}
|
||||
}
|
||||
161
samples/GLSL/SyLens.shader
Normal file
161
samples/GLSL/SyLens.shader
Normal file
@@ -0,0 +1,161 @@
|
||||
#version 120
|
||||
|
||||
/*
|
||||
Original Lens Distortion Algorithm from SSontech (Syntheyes)
|
||||
http://www.ssontech.com/content/lensalg.htm
|
||||
|
||||
r2 is radius squared.
|
||||
|
||||
r2 = image_aspect*image_aspect*u*u + v*v
|
||||
f = 1 + r2*(k + kcube*sqrt(r2))
|
||||
u' = f*u
|
||||
v' = f*v
|
||||
|
||||
*/
|
||||
|
||||
// Controls
|
||||
uniform float kCoeff, kCube, uShift, vShift;
|
||||
uniform float chroma_red, chroma_green, chroma_blue;
|
||||
uniform bool apply_disto;
|
||||
|
||||
// Uniform inputs
|
||||
uniform sampler2D input1;
|
||||
uniform float adsk_input1_w, adsk_input1_h, adsk_input1_aspect, adsk_input1_frameratio;
|
||||
uniform float adsk_result_w, adsk_result_h;
|
||||
|
||||
float distortion_f(float r) {
|
||||
float f = 1 + (r*r)*(kCoeff + kCube * r);
|
||||
return f;
|
||||
}
|
||||
|
||||
|
||||
float inverse_f(float r)
|
||||
{
|
||||
|
||||
// Build a lookup table on the radius, as a fixed-size table.
|
||||
// We will use a vec3 since we will store the multipled number in the Z coordinate.
|
||||
// So to recap: x will be the radius, y will be the f(x) distortion, and Z will be x * y;
|
||||
vec3[48] lut;
|
||||
|
||||
// Since out LUT is shader-global check if it's been computed alrite
|
||||
// Flame has no overflow bbox so we can safely max out at the image edge, plus some cushion
|
||||
float max_r = sqrt((adsk_input1_frameratio * adsk_input1_frameratio) + 1) + 0.1;
|
||||
float incr = max_r / 48;
|
||||
float lut_r = 0;
|
||||
float f;
|
||||
for(int i=0; i < 48; i++) {
|
||||
f = distortion_f(lut_r);
|
||||
lut[i] = vec3(lut_r, f, lut_r * f);
|
||||
lut_r += incr;
|
||||
}
|
||||
|
||||
float t;
|
||||
// Now find the nehgbouring elements
|
||||
// only iterate to 46 since we will need
|
||||
// 47 as i+1
|
||||
for(int i=0; i < 47; i++) {
|
||||
if(lut[i].z < r && lut[i+1].z > r) {
|
||||
// BAM! our value is between these two segments
|
||||
// get the T interpolant and mix
|
||||
t = (r - lut[i].z) / (lut[i+1].z - lut[i]).z;
|
||||
return mix(lut[i].y, lut[i+1].y, t );
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
float aberrate(float f, float chroma)
|
||||
{
|
||||
return f + (f * chroma);
|
||||
}
|
||||
|
||||
vec3 chromaticize_and_invert(float f)
|
||||
{
|
||||
vec3 rgb_f = vec3(aberrate(f, chroma_red), aberrate(f, chroma_green), aberrate(f, chroma_blue));
|
||||
// We need to DIVIDE by F when we redistort, and x / y == x * (1 / y)
|
||||
if(apply_disto) {
|
||||
rgb_f = 1 / rgb_f;
|
||||
}
|
||||
return rgb_f;
|
||||
}
|
||||
|
||||
void main(void)
|
||||
{
|
||||
vec2 px, uv;
|
||||
float f = 1;
|
||||
float r = 1;
|
||||
|
||||
px = gl_FragCoord.xy;
|
||||
|
||||
// Make sure we are still centered
|
||||
px.x -= (adsk_result_w - adsk_input1_w) / 2;
|
||||
px.y -= (adsk_result_h - adsk_input1_h) / 2;
|
||||
|
||||
// Push the destination coordinates into the [0..1] range
|
||||
uv.x = px.x / adsk_input1_w;
|
||||
uv.y = px.y / adsk_input1_h;
|
||||
|
||||
|
||||
// And to Syntheyes UV which are [1..-1] on both X and Y
|
||||
uv.x = (uv.x *2 ) - 1;
|
||||
uv.y = (uv.y *2 ) - 1;
|
||||
|
||||
// Add UV shifts
|
||||
uv.x += uShift;
|
||||
uv.y += vShift;
|
||||
|
||||
// Make the X value the aspect value, so that the X coordinates go to [-aspect..aspect]
|
||||
uv.x = uv.x * adsk_input1_frameratio;
|
||||
|
||||
// Compute the radius
|
||||
r = sqrt(uv.x*uv.x + uv.y*uv.y);
|
||||
|
||||
// If we are redistorting, account for the oversize plate in the input, assume that
|
||||
// the input aspect is the same
|
||||
if(apply_disto) {
|
||||
r = r / (float(adsk_input1_w) / float(adsk_result_w));
|
||||
}
|
||||
|
||||
// Apply or remove disto, per channel honoring chromatic aberration
|
||||
if(apply_disto) {
|
||||
f = inverse_f(r);
|
||||
} else {
|
||||
f = distortion_f(r);
|
||||
}
|
||||
|
||||
vec2[3] rgb_uvs = vec2[](uv, uv, uv);
|
||||
|
||||
// Compute distortions per component
|
||||
vec3 rgb_f = chromaticize_and_invert(f);
|
||||
|
||||
// Apply the disto coefficients, per component
|
||||
rgb_uvs[0] = rgb_uvs[0] * rgb_f.rr;
|
||||
rgb_uvs[1] = rgb_uvs[1] * rgb_f.gg;
|
||||
rgb_uvs[2] = rgb_uvs[2] * rgb_f.bb;
|
||||
|
||||
// Convert all the UVs back to the texture space, per color component
|
||||
for(int i=0; i < 3; i++) {
|
||||
uv = rgb_uvs[i];
|
||||
|
||||
// Back from [-aspect..aspect] to [-1..1]
|
||||
uv.x = uv.x / adsk_input1_frameratio;
|
||||
|
||||
// Remove UV shifts
|
||||
uv.x -= uShift;
|
||||
uv.y -= vShift;
|
||||
|
||||
// Back to OGL UV
|
||||
uv.x = (uv.x + 1) / 2;
|
||||
uv.y = (uv.y + 1) / 2;
|
||||
|
||||
rgb_uvs[i] = uv;
|
||||
}
|
||||
|
||||
// Sample the input plate, per component
|
||||
vec4 sampled;
|
||||
sampled.r = texture2D(input1, rgb_uvs[0]).r;
|
||||
sampled.g = texture2D(input1, rgb_uvs[1]).g;
|
||||
sampled.b = texture2D(input1, rgb_uvs[2]).b;
|
||||
|
||||
// and assign to the output
|
||||
gl_FragColor.rgba = vec4(sampled.rgb, 1.0 );
|
||||
}
|
||||
630
samples/GLSL/islandScene.shader
Normal file
630
samples/GLSL/islandScene.shader
Normal file
@@ -0,0 +1,630 @@
|
||||
//// High quality (Some browsers may freeze or crash)
|
||||
//#define HIGHQUALITY
|
||||
|
||||
//// Medium quality (Should be fine on all systems, works on Intel HD2000 on Win7 but quite slow)
|
||||
//#define MEDIUMQUALITY
|
||||
|
||||
//// Defaults
|
||||
//#define REFLECTIONS
|
||||
#define SHADOWS
|
||||
//#define GRASS
|
||||
//#define SMALL_WAVES
|
||||
#define RAGGED_LEAVES
|
||||
//#define DETAILED_NOISE
|
||||
//#define LIGHT_AA // 2 sample SSAA
|
||||
//#define HEAVY_AA // 2x2 RG SSAA
|
||||
//#define TONEMAP
|
||||
|
||||
//// Configurations
|
||||
#ifdef MEDIUMQUALITY
|
||||
#define SHADOWS
|
||||
#define SMALL_WAVES
|
||||
#define RAGGED_LEAVES
|
||||
#define TONEMAP
|
||||
#endif
|
||||
|
||||
#ifdef HIGHQUALITY
|
||||
#define REFLECTIONS
|
||||
#define SHADOWS
|
||||
//#define GRASS
|
||||
#define SMALL_WAVES
|
||||
#define RAGGED_LEAVES
|
||||
#define DETAILED_NOISE
|
||||
#define LIGHT_AA
|
||||
#define TONEMAP
|
||||
#endif
|
||||
|
||||
// Constants
|
||||
const float eps = 1e-5;
|
||||
const float PI = 3.14159265359;
|
||||
|
||||
const vec3 sunDir = vec3(0.79057,-0.47434, 0.0);
|
||||
const vec3 skyCol = vec3(0.3, 0.5, 0.8);
|
||||
const vec3 sandCol = vec3(0.9, 0.8, 0.5);
|
||||
const vec3 treeCol = vec3(0.8, 0.65, 0.3);
|
||||
const vec3 grassCol = vec3(0.4, 0.5, 0.18);
|
||||
const vec3 leavesCol = vec3(0.3, 0.6, 0.2);
|
||||
const vec3 leavesPos = vec3(-5.1,13.4, 0.0);
|
||||
|
||||
#ifdef TONEMAP
|
||||
const vec3 sunCol = vec3(1.8, 1.7, 1.6);
|
||||
#else
|
||||
const vec3 sunCol = vec3(0.9, 0.85, 0.8);
|
||||
#endif
|
||||
|
||||
const float exposure = 1.1; // Only used when tonemapping
|
||||
|
||||
// Description : Array and textureless GLSL 2D/3D/4D simplex
|
||||
// noise functions.
|
||||
// Author : Ian McEwan, Ashima Arts.
|
||||
// License : Copyright (C) 2011 Ashima Arts. All rights reserved.
|
||||
// Distributed under the MIT License. See LICENSE file.
|
||||
// https://github.com/ashima/webgl-noise
|
||||
vec3 mod289(vec3 x) {
|
||||
return x - floor(x * (1.0 / 289.0)) * 289.0;
|
||||
}
|
||||
|
||||
vec4 mod289(vec4 x) {
|
||||
return x - floor(x * (1.0 / 289.0)) * 289.0;
|
||||
}
|
||||
|
||||
vec4 permute(vec4 x) {
|
||||
return mod289(((x*34.0)+1.0)*x);
|
||||
}
|
||||
|
||||
vec4 taylorInvSqrt(vec4 r) {
|
||||
return 1.79284291400159 - 0.85373472095314 * r;
|
||||
}
|
||||
|
||||
float snoise(vec3 v) {
|
||||
const vec2 C = vec2(1.0/6.0, 1.0/3.0) ;
|
||||
const vec4 D = vec4(0.0, 0.5, 1.0, 2.0);
|
||||
|
||||
// First corner
|
||||
vec3 i = floor(v + dot(v, C.yyy) );
|
||||
vec3 x0 = v - i + dot(i, C.xxx) ;
|
||||
|
||||
// Other corners
|
||||
vec3 g = step(x0.yzx, x0.xyz);
|
||||
vec3 l = 1.0 - g;
|
||||
vec3 i1 = min( g.xyz, l.zxy );
|
||||
vec3 i2 = max( g.xyz, l.zxy );
|
||||
|
||||
// x0 = x0 - 0.0 + 0.0 * C.xxx;
|
||||
// x1 = x0 - i1 + 1.0 * C.xxx;
|
||||
// x2 = x0 - i2 + 2.0 * C.xxx;
|
||||
// x3 = x0 - 1.0 + 3.0 * C.xxx;
|
||||
vec3 x1 = x0 - i1 + C.xxx;
|
||||
vec3 x2 = x0 - i2 + C.yyy; // 2.0*C.x = 1/3 = C.y
|
||||
vec3 x3 = x0 - D.yyy; // -1.0+3.0*C.x = -0.5 = -D.y
|
||||
|
||||
// Permutations
|
||||
i = mod289(i);
|
||||
vec4 p = permute( permute( permute(
|
||||
i.z + vec4(0.0, i1.z, i2.z, 1.0 ))
|
||||
+ i.y + vec4(0.0, i1.y, i2.y, 1.0 ))
|
||||
+ i.x + vec4(0.0, i1.x, i2.x, 1.0 ));
|
||||
|
||||
// Gradients: 7x7 points over a square, mapped onto an octahedron.
|
||||
// The ring size 17*17 = 289 is close to a multiple of 49 (49*6 = 294)
|
||||
float n_ = 0.142857142857; // 1.0/7.0
|
||||
vec3 ns = n_ * D.wyz - D.xzx;
|
||||
|
||||
vec4 j = p - 49.0 * floor(p * ns.z * ns.z); // mod(p,7*7)
|
||||
|
||||
vec4 x_ = floor(j * ns.z);
|
||||
vec4 y_ = floor(j - 7.0 * x_ ); // mod(j,N)
|
||||
|
||||
vec4 x = x_ *ns.x + ns.yyyy;
|
||||
vec4 y = y_ *ns.x + ns.yyyy;
|
||||
vec4 h = 1.0 - abs(x) - abs(y);
|
||||
|
||||
vec4 b0 = vec4( x.xy, y.xy );
|
||||
vec4 b1 = vec4( x.zw, y.zw );
|
||||
|
||||
//vec4 s0 = vec4(lessThan(b0,0.0))*2.0 - 1.0;
|
||||
//vec4 s1 = vec4(lessThan(b1,0.0))*2.0 - 1.0;
|
||||
vec4 s0 = floor(b0)*2.0 + 1.0;
|
||||
vec4 s1 = floor(b1)*2.0 + 1.0;
|
||||
vec4 sh = -step(h, vec4(0.0));
|
||||
|
||||
vec4 a0 = b0.xzyw + s0.xzyw*sh.xxyy ;
|
||||
vec4 a1 = b1.xzyw + s1.xzyw*sh.zzww ;
|
||||
|
||||
vec3 p0 = vec3(a0.xy,h.x);
|
||||
vec3 p1 = vec3(a0.zw,h.y);
|
||||
vec3 p2 = vec3(a1.xy,h.z);
|
||||
vec3 p3 = vec3(a1.zw,h.w);
|
||||
|
||||
//Normalise gradients
|
||||
vec4 norm = taylorInvSqrt(vec4(dot(p0,p0), dot(p1,p1), dot(p2, p2), dot(p3,p3)));
|
||||
p0 *= norm.x;
|
||||
p1 *= norm.y;
|
||||
p2 *= norm.z;
|
||||
p3 *= norm.w;
|
||||
|
||||
// Mix final noise value
|
||||
vec4 m = max(0.6 - vec4(dot(x0,x0), dot(x1,x1), dot(x2,x2), dot(x3,x3)), 0.0);
|
||||
m = m * m;
|
||||
return 42.0 * dot( m*m, vec4( dot(p0,x0), dot(p1,x1),
|
||||
dot(p2,x2), dot(p3,x3) ) );
|
||||
}
|
||||
|
||||
|
||||
|
||||
// Main
|
||||
float fbm(vec3 p)
|
||||
{
|
||||
float final = snoise(p);
|
||||
p *= 1.94; final += snoise(p) * 0.5;
|
||||
#ifdef DETAILED_NOISE
|
||||
p *= 3.75; final += snoise(p) * 0.25;
|
||||
return final / 1.75;
|
||||
#else
|
||||
return final / 1.5;
|
||||
#endif
|
||||
}
|
||||
|
||||
float waterHeight(vec3 p)
|
||||
{
|
||||
float d = length(p.xz);
|
||||
float h = sin(d * 1.5 + iGlobalTime * 3.0) * 12.0 / d; // Island waves
|
||||
#ifdef SMALL_WAVES
|
||||
h += fbm(p*0.5); // Other waves
|
||||
#endif
|
||||
return h;
|
||||
}
|
||||
|
||||
vec3 bump(vec3 pos, vec3 rayDir)
|
||||
{
|
||||
float s = 2.0;
|
||||
|
||||
// Fade out waves to reduce aliasing
|
||||
float dist = dot(pos, rayDir);
|
||||
s *= dist < 2.0 ? 1.0 : 1.4142 / sqrt(dist);
|
||||
|
||||
// Calculate normal from heightmap
|
||||
vec2 e = vec2(1e-2, 0.0);
|
||||
vec3 p = vec3(pos.x, iGlobalTime*0.5, pos.z)*0.7;
|
||||
float m = waterHeight(p)*s;
|
||||
return normalize(vec3(
|
||||
waterHeight(p+e.xyy)*s-m,
|
||||
1.0,
|
||||
waterHeight(p+e.yxy)*s-m
|
||||
));
|
||||
}
|
||||
|
||||
// Ray intersections
|
||||
vec4 intersectSphere(vec3 rpos, vec3 rdir, vec3 pos, float rad)
|
||||
{
|
||||
vec3 op = pos - rpos;
|
||||
float b = dot(op, rdir);
|
||||
float det = b*b - dot(op, op) + rad*rad;
|
||||
|
||||
if (det > 0.0)
|
||||
{
|
||||
det = sqrt(det);
|
||||
float t = b - det;
|
||||
if (t > eps)
|
||||
return vec4(-normalize(rpos+rdir*t-pos), t);
|
||||
}
|
||||
|
||||
return vec4(0.0);
|
||||
}
|
||||
|
||||
vec4 intersectCylinder(vec3 rpos, vec3 rdir, vec3 pos, float rad)
|
||||
{
|
||||
vec3 op = pos - rpos;
|
||||
vec2 rdir2 = normalize(rdir.yz);
|
||||
float b = dot(op.yz, rdir2);
|
||||
float det = b*b - dot(op.yz, op.yz) + rad*rad;
|
||||
|
||||
if (det > 0.0)
|
||||
{
|
||||
det = sqrt(det);
|
||||
float t = b - det;
|
||||
if (t > eps)
|
||||
return vec4(-normalize(rpos.yz+rdir2*t-pos.yz), 0.0, t);
|
||||
t = b + det;
|
||||
if (t > eps)
|
||||
return vec4(-normalize(rpos.yz+rdir2*t-pos.yz), 0.0, t);
|
||||
}
|
||||
|
||||
return vec4(0.0);
|
||||
}
|
||||
|
||||
vec4 intersectPlane(vec3 rayPos, vec3 rayDir, vec3 n, float d)
|
||||
{
|
||||
float t = -(dot(rayPos, n) + d) / dot(rayDir, n);
|
||||
return vec4(n * sign(dot(rayDir, n)), t);
|
||||
}
|
||||
|
||||
// Helper functions
|
||||
vec3 rotate(vec3 p, float theta)
|
||||
{
|
||||
float c = cos(theta), s = sin(theta);
|
||||
return vec3(p.x * c + p.z * s, p.y,
|
||||
p.z * c - p.x * s);
|
||||
}
|
||||
|
||||
float impulse(float k, float x) // by iq
|
||||
{
|
||||
float h = k*x;
|
||||
return h * exp(1.0 - h);
|
||||
}
|
||||
|
||||
// Raymarched parts of scene
|
||||
float grass(vec3 pos)
|
||||
{
|
||||
float h = length(pos - vec3(0.0, -7.0, 0.0)) - 8.0;
|
||||
|
||||
if (h > 2.0) return h; // Optimization (Avoid noise if too far away)
|
||||
|
||||
return h + snoise(pos * 3.0) * 0.1 + pos.y * 0.9;
|
||||
}
|
||||
|
||||
float tree(vec3 pos)
|
||||
{
|
||||
pos.y -= 0.5;
|
||||
float s = sin(pos.y*0.03);
|
||||
float c = cos(pos.y*0.03);
|
||||
mat2 m = mat2(c, -s, s, c);
|
||||
vec3 p = vec3(m*pos.xy, pos.z);
|
||||
|
||||
float width = 1.0 - pos.y * 0.02 - clamp(sin(pos.y * 8.0) * 0.1, 0.05, 0.1);
|
||||
|
||||
return max(length(p.xz) - width, pos.y - 12.5);
|
||||
}
|
||||
|
||||
vec2 scene(vec3 pos)
|
||||
{
|
||||
float vtree = tree(pos);
|
||||
#ifdef GRASS
|
||||
float vgrass = grass(pos);
|
||||
float v = min(vtree, vgrass);
|
||||
#else
|
||||
float v = vtree;
|
||||
#endif
|
||||
return vec2(v, v == vtree ? 2.0 : 1.0);
|
||||
}
|
||||
|
||||
vec3 normal(vec3 pos)
|
||||
{
|
||||
vec2 eps = vec2(1e-3, 0.0);
|
||||
float h = scene(pos).x;
|
||||
return normalize(vec3(
|
||||
scene(pos-eps.xyy).x-h,
|
||||
scene(pos-eps.yxy).x-h,
|
||||
scene(pos-eps.yyx).x-h
|
||||
));
|
||||
}
|
||||
|
||||
float plantsShadow(vec3 rayPos, vec3 rayDir)
|
||||
{
|
||||
// Soft shadow taken from iq
|
||||
float k = 6.0;
|
||||
float t = 0.0;
|
||||
float s = 1.0;
|
||||
for (int i = 0; i < 30; i++)
|
||||
{
|
||||
vec3 pos = rayPos+rayDir*t;
|
||||
vec2 res = scene(pos);
|
||||
if (res.x < 0.001) return 0.0;
|
||||
s = min(s, k*res.x/t);
|
||||
t += max(res.x, 0.01);
|
||||
}
|
||||
|
||||
return s*s*(3.0 - 2.0*s);
|
||||
}
|
||||
|
||||
// Ray-traced parts of scene
|
||||
vec4 intersectWater(vec3 rayPos, vec3 rayDir)
|
||||
{
|
||||
float h = sin(20.5 + iGlobalTime * 2.0) * 0.03;
|
||||
float t = -(rayPos.y + 2.5 + h) / rayDir.y;
|
||||
return vec4(0.0, 1.0, 0.0, t);
|
||||
}
|
||||
|
||||
vec4 intersectSand(vec3 rayPos, vec3 rayDir)
|
||||
{
|
||||
return intersectSphere(rayPos, rayDir, vec3(0.0,-24.1,0.0), 24.1);
|
||||
}
|
||||
|
||||
vec4 intersectTreasure(vec3 rayPos, vec3 rayDir)
|
||||
{
|
||||
return vec4(0.0);
|
||||
}
|
||||
|
||||
vec4 intersectLeaf(vec3 rayPos, vec3 rayDir, float openAmount)
|
||||
{
|
||||
vec3 dir = normalize(vec3(0.0, 1.0, openAmount));
|
||||
float offset = 0.0;
|
||||
|
||||
vec4 res = intersectPlane(rayPos, rayDir, dir, 0.0);
|
||||
vec3 pos = rayPos+rayDir*res.w;
|
||||
#ifdef RAGGED_LEAVES
|
||||
offset = snoise(pos*0.8) * 0.3;
|
||||
#endif
|
||||
if (pos.y > 0.0 || length(pos * vec3(0.9, 2.0, 1.0)) > 4.0 - offset) res.w = 0.0;
|
||||
|
||||
vec4 res2 = intersectPlane(rayPos, rayDir, vec3(dir.xy, -dir.z), 0.0);
|
||||
pos = rayPos+rayDir*res2.w;
|
||||
#ifdef RAGGED_LEAVES
|
||||
offset = snoise(pos*0.8) * 0.3;
|
||||
#endif
|
||||
if (pos.y > 0.0 || length(pos * vec3(0.9, 2.0, 1.0)) > 4.0 - offset) res2.w = 0.0;
|
||||
|
||||
if (res2.w > 0.0 && res2.w < res.w || res.w <= 0.0)
|
||||
res = res2;
|
||||
|
||||
return res;
|
||||
}
|
||||
|
||||
vec4 leaves(vec3 rayPos, vec3 rayDir)
|
||||
{
|
||||
float t = 1e20;
|
||||
vec3 n = vec3(0.0);
|
||||
|
||||
rayPos -= leavesPos;
|
||||
|
||||
float sway = impulse(15.0, fract(iGlobalTime / PI * 0.125));
|
||||
float upDownSway = sway * -sin(iGlobalTime) * 0.06;
|
||||
float openAmount = sway * max(-cos(iGlobalTime) * 0.4, 0.0);
|
||||
|
||||
float angleOffset = -0.1;
|
||||
for (float k = 0.0; k < 6.2; k += 0.75)
|
||||
{
|
||||
// Left-right
|
||||
float alpha = k + (k - PI) * sway * 0.015;
|
||||
vec3 p = rotate(rayPos, alpha);
|
||||
vec3 d = rotate(rayDir, alpha);
|
||||
|
||||
// Up-down
|
||||
angleOffset *= -1.0;
|
||||
float theta = -0.4 +
|
||||
angleOffset +
|
||||
cos(k) * 0.35 +
|
||||
upDownSway +
|
||||
sin(iGlobalTime+k*10.0) * 0.03 * (sway + 0.2);
|
||||
|
||||
p = rotate(p.xzy, theta).xzy;
|
||||
d = rotate(d.xzy, theta).xzy;
|
||||
|
||||
// Shift
|
||||
p -= vec3(5.4, 0.0, 0.0);
|
||||
|
||||
// Intersect individual leaf
|
||||
vec4 res = intersectLeaf(p, d, 1.0+openAmount);
|
||||
if (res.w > 0.0 && res.w < t)
|
||||
{
|
||||
t = res.w;
|
||||
n = res.xyz;
|
||||
}
|
||||
}
|
||||
|
||||
return vec4(n, t);
|
||||
}
|
||||
|
||||
// Lighting
|
||||
float shadow(vec3 rayPos, vec3 rayDir)
|
||||
{
|
||||
float s = 1.0;
|
||||
|
||||
// Intersect sand
|
||||
//vec4 resSand = intersectSand(rayPos, rayDir);
|
||||
//if (resSand.w > 0.0) return 0.0;
|
||||
|
||||
// Intersect plants
|
||||
s = min(s, plantsShadow(rayPos, rayDir));
|
||||
if (s < 0.0001) return 0.0;
|
||||
|
||||
// Intersect leaves
|
||||
vec4 resLeaves = leaves(rayPos, rayDir);
|
||||
if (resLeaves.w > 0.0 && resLeaves.w < 1e7) return 0.0;
|
||||
|
||||
return s;
|
||||
}
|
||||
|
||||
vec3 light(vec3 p, vec3 n)
|
||||
{
|
||||
float s = 1.0;
|
||||
|
||||
#ifdef SHADOWS
|
||||
s = shadow(p-sunDir*0.01, -sunDir);
|
||||
#endif
|
||||
|
||||
vec3 col = sunCol * min(max(dot(n, sunDir), 0.0), s);
|
||||
col += skyCol * (-n.y * 0.5 + 0.5) * 0.3;
|
||||
return col;
|
||||
}
|
||||
|
||||
vec3 lightLeaves(vec3 p, vec3 n)
|
||||
{
|
||||
float s = 1.0;
|
||||
|
||||
#ifdef SHADOWS
|
||||
s = shadow(p-sunDir*0.01, -sunDir);
|
||||
#endif
|
||||
|
||||
float ao = min(length(p - leavesPos) * 0.1, 1.0);
|
||||
|
||||
float ns = dot(n, sunDir);
|
||||
float d = sqrt(max(ns, 0.0));
|
||||
vec3 col = sunCol * min(d, s);
|
||||
col += sunCol * max(-ns, 0.0) * vec3(0.3, 0.3, 0.1) * ao;
|
||||
col += skyCol * (-n.y * 0.5 + 0.5) * 0.3 * ao;
|
||||
return col;
|
||||
}
|
||||
|
||||
vec3 sky(vec3 n)
|
||||
{
|
||||
return skyCol * (1.0 - n.y * 0.8);
|
||||
}
|
||||
|
||||
// Ray-marching
|
||||
vec4 plants(vec3 rayPos, vec3 rayDir)
|
||||
{
|
||||
float t = 0.0;
|
||||
|
||||
for (int i = 0; i < 40; i++)
|
||||
{
|
||||
vec3 pos = rayPos+rayDir*t;
|
||||
vec2 res = scene(pos);
|
||||
float h = res.x;
|
||||
|
||||
if (h < 0.001)
|
||||
{
|
||||
vec3 col = res.y == 2.0 ? treeCol : grassCol;
|
||||
float uvFact = res.y == 2.0 ? 1.0 : 10.0;
|
||||
|
||||
vec3 n = normal(pos);
|
||||
vec2 uv = vec2(n.x, pos.y * 0.5) * 0.2 * uvFact;
|
||||
vec3 tex = texture2D(iChannel0, uv).rgb * 0.6 + 0.4;
|
||||
float ao = min(length(pos - leavesPos) * 0.1, 1.0);
|
||||
return vec4(col * light(pos, n) * ao * tex, t);
|
||||
}
|
||||
|
||||
t += h;
|
||||
}
|
||||
|
||||
return vec4(sky(rayDir), 1e8);
|
||||
}
|
||||
|
||||
// Final combination
|
||||
vec3 traceReflection(vec3 rayPos, vec3 rayDir)
|
||||
{
|
||||
vec3 col = vec3(0.0);
|
||||
float t = 1e20;
|
||||
|
||||
// Intersect plants
|
||||
vec4 resPlants = plants(rayPos, rayDir);
|
||||
if (resPlants.w > 0.0 && resPlants.w < t)
|
||||
{
|
||||
t = resPlants.w;
|
||||
col = resPlants.xyz;
|
||||
}
|
||||
|
||||
// Intersect leaves
|
||||
vec4 resLeaves = leaves(rayPos, rayDir);
|
||||
if (resLeaves.w > 0.0 && resLeaves.w < t)
|
||||
{
|
||||
vec3 pos = rayPos + rayDir * resLeaves.w;
|
||||
vec2 uv = (pos.xz - leavesPos.xz) * 0.3;
|
||||
float tex = texture2D(iChannel0, uv).r * 0.6 + 0.5;
|
||||
|
||||
t = resLeaves.w;
|
||||
col = leavesCol * lightLeaves(pos, resLeaves.xyz) * tex;
|
||||
}
|
||||
|
||||
if (t > 1e7) return sky(rayDir);
|
||||
|
||||
return col;
|
||||
}
|
||||
|
||||
vec3 trace(vec3 rayPos, vec3 rayDir)
|
||||
{
|
||||
vec3 col = vec3(0.0);
|
||||
float t = 1e20;
|
||||
|
||||
// Intersect sand
|
||||
vec4 resSand = intersectSand(rayPos, rayDir);
|
||||
if (resSand.w > 0.0)
|
||||
{
|
||||
vec3 pos = rayPos + rayDir * resSand.w;
|
||||
t = resSand.w;
|
||||
|
||||
col = sandCol * light(pos, resSand.xyz);
|
||||
}
|
||||
|
||||
// Intersect treasure chest
|
||||
vec4 resTreasure = intersectTreasure(rayPos, rayDir);
|
||||
if (resTreasure.w > 0.0 && resTreasure.w < t)
|
||||
{
|
||||
vec3 pos = rayPos + rayDir * resTreasure.w;
|
||||
t = resTreasure.w;
|
||||
col = leavesCol * light(pos, resTreasure.xyz);
|
||||
}
|
||||
|
||||
// Intersect leaves
|
||||
vec4 resLeaves = leaves(rayPos, rayDir);
|
||||
if (resLeaves.w > 0.0 && resLeaves.w < t)
|
||||
{
|
||||
vec3 pos = rayPos + rayDir * resLeaves.w;
|
||||
vec2 uv = (pos.xz - leavesPos.xz) * 0.3;
|
||||
float tex = texture2D(iChannel0, uv).r * 0.6 + 0.5;
|
||||
|
||||
t = resLeaves.w;
|
||||
col = leavesCol * lightLeaves(pos, resLeaves.xyz) * tex;
|
||||
}
|
||||
|
||||
// Intersect plants
|
||||
vec4 resPlants = plants(rayPos, rayDir);
|
||||
if (resPlants.w > 0.0 && resPlants.w < t)
|
||||
{
|
||||
t = resPlants.w;
|
||||
col = resPlants.xyz;
|
||||
}
|
||||
|
||||
// Intersect water
|
||||
vec4 resWater = intersectWater(rayPos, rayDir);
|
||||
if (resWater.w > 0.0 && resWater.w < t)
|
||||
{
|
||||
vec3 pos = rayPos + rayDir * resWater.w;
|
||||
float dist = t - resWater.w;
|
||||
vec3 n = bump(pos, rayDir);
|
||||
|
||||
float ct = -min(dot(n,rayDir), 0.0);
|
||||
float fresnel = 0.9 - 0.9 * pow(1.0 - ct, 5.0);
|
||||
|
||||
vec3 trans = col * exp(-dist * vec3(1.0, 0.7, 0.4) * 3.0);
|
||||
vec3 reflDir = normalize(reflect(rayDir, n));
|
||||
vec3 refl = sky(reflDir);
|
||||
|
||||
#ifdef REFLECTIONS
|
||||
if (dot(pos, rayDir) < -2.0)
|
||||
refl = traceReflection(pos, reflDir).rgb;
|
||||
#endif
|
||||
|
||||
t = resWater.t;
|
||||
col = mix(refl, trans, fresnel);
|
||||
}
|
||||
|
||||
if (t > 1e7) return sky(rayDir);
|
||||
|
||||
return col;
|
||||
}
|
||||
|
||||
// Ray-generation
|
||||
vec3 camera(vec2 px)
|
||||
{
|
||||
vec2 rd = (px / iResolution.yy - vec2(iResolution.x/iResolution.y*0.5-0.5, 0.0)) * 2.0 - 1.0;
|
||||
float t = sin(iGlobalTime * 0.1) * 0.2;
|
||||
vec3 rayDir = normalize(vec3(rd.x, rd.y, 1.0));
|
||||
vec3 rayPos = vec3(0.0, 3.0, -18.0);
|
||||
return trace(rayPos, rayDir);
|
||||
}
|
||||
|
||||
void main(void)
|
||||
{
|
||||
#ifdef HEAVY_AA
|
||||
vec3 col = camera(gl_FragCoord.xy+vec2(0.0,0.5))*0.25;
|
||||
col += camera(gl_FragCoord.xy+vec2(0.25,0.0))*0.25;
|
||||
col += camera(gl_FragCoord.xy+vec2(0.5,0.75))*0.25;
|
||||
col += camera(gl_FragCoord.xy+vec2(0.75,0.25))*0.25;
|
||||
#else
|
||||
vec3 col = camera(gl_FragCoord.xy);
|
||||
#ifdef LIGHT_AA
|
||||
col = col * 0.5 + camera(gl_FragCoord.xy+vec2(0.5,0.5))*0.5;
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#ifdef TONEMAP
|
||||
// Optimized Haarm-Peter Duiker’s curve
|
||||
vec3 x = max(vec3(0.0),col*exposure-0.004);
|
||||
col = (x*(6.2*x+.5))/(x*(6.2*x+1.7)+0.06);
|
||||
#else
|
||||
col = pow(col, vec3(0.4545));
|
||||
#endif
|
||||
|
||||
gl_FragColor = vec4(col, 1.0);
|
||||
}
|
||||
98
samples/GLSL/pntriangles.tesc
Normal file
98
samples/GLSL/pntriangles.tesc
Normal file
@@ -0,0 +1,98 @@
|
||||
/**
|
||||
* The MIT License (MIT)
|
||||
*
|
||||
* Copyright (c) 2016 Sascha Willems
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
|
||||
*
|
||||
* The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
*/
|
||||
|
||||
#version 450
|
||||
|
||||
#extension GL_ARB_separate_shader_objects : enable
|
||||
#extension GL_ARB_shading_language_420pack : enable
|
||||
|
||||
// PN patch data
|
||||
struct PnPatch
|
||||
{
|
||||
float b210;
|
||||
float b120;
|
||||
float b021;
|
||||
float b012;
|
||||
float b102;
|
||||
float b201;
|
||||
float b111;
|
||||
float n110;
|
||||
float n011;
|
||||
float n101;
|
||||
};
|
||||
|
||||
// tessellation levels
|
||||
layout (binding = 0) uniform UBO
|
||||
{
|
||||
float tessLevel;
|
||||
} ubo;
|
||||
|
||||
layout(vertices=3) out;
|
||||
|
||||
layout(location = 0) in vec3 inNormal[];
|
||||
layout(location = 1) in vec2 inUV[];
|
||||
|
||||
layout(location = 0) out vec3 outNormal[3];
|
||||
layout(location = 3) out vec2 outUV[3];
|
||||
layout(location = 6) out PnPatch outPatch[3];
|
||||
|
||||
float wij(int i, int j)
|
||||
{
|
||||
return dot(gl_in[j].gl_Position.xyz - gl_in[i].gl_Position.xyz, inNormal[i]);
|
||||
}
|
||||
|
||||
float vij(int i, int j)
|
||||
{
|
||||
vec3 Pj_minus_Pi = gl_in[j].gl_Position.xyz
|
||||
- gl_in[i].gl_Position.xyz;
|
||||
vec3 Ni_plus_Nj = inNormal[i]+inNormal[j];
|
||||
return 2.0*dot(Pj_minus_Pi, Ni_plus_Nj)/dot(Pj_minus_Pi, Pj_minus_Pi);
|
||||
}
|
||||
|
||||
void main()
|
||||
{
|
||||
// get data
|
||||
gl_out[gl_InvocationID].gl_Position = gl_in[gl_InvocationID].gl_Position;
|
||||
outNormal[gl_InvocationID] = inNormal[gl_InvocationID];
|
||||
outUV[gl_InvocationID] = inUV[gl_InvocationID];
|
||||
|
||||
// set base
|
||||
float P0 = gl_in[0].gl_Position[gl_InvocationID];
|
||||
float P1 = gl_in[1].gl_Position[gl_InvocationID];
|
||||
float P2 = gl_in[2].gl_Position[gl_InvocationID];
|
||||
float N0 = inNormal[0][gl_InvocationID];
|
||||
float N1 = inNormal[1][gl_InvocationID];
|
||||
float N2 = inNormal[2][gl_InvocationID];
|
||||
|
||||
// compute control points
|
||||
outPatch[gl_InvocationID].b210 = (2.0*P0 + P1 - wij(0,1)*N0)/3.0;
|
||||
outPatch[gl_InvocationID].b120 = (2.0*P1 + P0 - wij(1,0)*N1)/3.0;
|
||||
outPatch[gl_InvocationID].b021 = (2.0*P1 + P2 - wij(1,2)*N1)/3.0;
|
||||
outPatch[gl_InvocationID].b012 = (2.0*P2 + P1 - wij(2,1)*N2)/3.0;
|
||||
outPatch[gl_InvocationID].b102 = (2.0*P2 + P0 - wij(2,0)*N2)/3.0;
|
||||
outPatch[gl_InvocationID].b201 = (2.0*P0 + P2 - wij(0,2)*N0)/3.0;
|
||||
float E = ( outPatch[gl_InvocationID].b210
|
||||
+ outPatch[gl_InvocationID].b120
|
||||
+ outPatch[gl_InvocationID].b021
|
||||
+ outPatch[gl_InvocationID].b012
|
||||
+ outPatch[gl_InvocationID].b102
|
||||
+ outPatch[gl_InvocationID].b201 ) / 6.0;
|
||||
float V = (P0 + P1 + P2)/3.0;
|
||||
outPatch[gl_InvocationID].b111 = E + (E - V)*0.5;
|
||||
outPatch[gl_InvocationID].n110 = N0+N1-vij(0,1)*(P1-P0);
|
||||
outPatch[gl_InvocationID].n011 = N1+N2-vij(1,2)*(P2-P1);
|
||||
outPatch[gl_InvocationID].n101 = N2+N0-vij(2,0)*(P0-P2);
|
||||
|
||||
// set tess levels
|
||||
gl_TessLevelOuter[gl_InvocationID] = ubo.tessLevel;
|
||||
gl_TessLevelInner[0] = ubo.tessLevel;
|
||||
}
|
||||
103
samples/GLSL/pntriangles.tese
Normal file
103
samples/GLSL/pntriangles.tese
Normal file
@@ -0,0 +1,103 @@
|
||||
/**
|
||||
* The MIT License (MIT)
|
||||
*
|
||||
* Copyright (c) 2016 Sascha Willems
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
|
||||
*
|
||||
* The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
*/
|
||||
|
||||
#version 450
|
||||
|
||||
#extension GL_ARB_separate_shader_objects : enable
|
||||
#extension GL_ARB_shading_language_420pack : enable
|
||||
|
||||
// PN patch data
|
||||
struct PnPatch
|
||||
{
|
||||
float b210;
|
||||
float b120;
|
||||
float b021;
|
||||
float b012;
|
||||
float b102;
|
||||
float b201;
|
||||
float b111;
|
||||
float n110;
|
||||
float n011;
|
||||
float n101;
|
||||
};
|
||||
|
||||
layout (binding = 1) uniform UBO
|
||||
{
|
||||
mat4 projection;
|
||||
mat4 model;
|
||||
float tessAlpha;
|
||||
} ubo;
|
||||
|
||||
layout(triangles, fractional_odd_spacing, ccw) in;
|
||||
|
||||
layout(location = 0) in vec3 iNormal[];
|
||||
layout(location = 3) in vec2 iTexCoord[];
|
||||
layout(location = 6) in PnPatch iPnPatch[];
|
||||
|
||||
layout(location = 0) out vec3 oNormal;
|
||||
layout(location = 1) out vec2 oTexCoord;
|
||||
|
||||
#define uvw gl_TessCoord
|
||||
|
||||
void main()
|
||||
{
|
||||
vec3 uvwSquared = uvw * uvw;
|
||||
vec3 uvwCubed = uvwSquared * uvw;
|
||||
|
||||
// extract control points
|
||||
vec3 b210 = vec3(iPnPatch[0].b210, iPnPatch[1].b210, iPnPatch[2].b210);
|
||||
vec3 b120 = vec3(iPnPatch[0].b120, iPnPatch[1].b120, iPnPatch[2].b120);
|
||||
vec3 b021 = vec3(iPnPatch[0].b021, iPnPatch[1].b021, iPnPatch[2].b021);
|
||||
vec3 b012 = vec3(iPnPatch[0].b012, iPnPatch[1].b012, iPnPatch[2].b012);
|
||||
vec3 b102 = vec3(iPnPatch[0].b102, iPnPatch[1].b102, iPnPatch[2].b102);
|
||||
vec3 b201 = vec3(iPnPatch[0].b201, iPnPatch[1].b201, iPnPatch[2].b201);
|
||||
vec3 b111 = vec3(iPnPatch[0].b111, iPnPatch[1].b111, iPnPatch[2].b111);
|
||||
|
||||
// extract control normals
|
||||
vec3 n110 = normalize(vec3(iPnPatch[0].n110, iPnPatch[1].n110, iPnPatch[2].n110));
|
||||
vec3 n011 = normalize(vec3(iPnPatch[0].n011, iPnPatch[1].n011, iPnPatch[2].n011));
|
||||
vec3 n101 = normalize(vec3(iPnPatch[0].n101, iPnPatch[1].n101, iPnPatch[2].n101));
|
||||
|
||||
// compute texcoords
|
||||
oTexCoord = gl_TessCoord[2]*iTexCoord[0] + gl_TessCoord[0]*iTexCoord[1] + gl_TessCoord[1]*iTexCoord[2];
|
||||
|
||||
// normal
|
||||
// Barycentric normal
|
||||
vec3 barNormal = gl_TessCoord[2]*iNormal[0] + gl_TessCoord[0]*iNormal[1] + gl_TessCoord[1]*iNormal[2];
|
||||
vec3 pnNormal = iNormal[0]*uvwSquared[2] + iNormal[1]*uvwSquared[0] + iNormal[2]*uvwSquared[1]
|
||||
+ n110*uvw[2]*uvw[0] + n011*uvw[0]*uvw[1]+ n101*uvw[2]*uvw[1];
|
||||
oNormal = ubo.tessAlpha*pnNormal + (1.0-ubo.tessAlpha) * barNormal;
|
||||
|
||||
// compute interpolated pos
|
||||
vec3 barPos = gl_TessCoord[2]*gl_in[0].gl_Position.xyz
|
||||
+ gl_TessCoord[0]*gl_in[1].gl_Position.xyz
|
||||
+ gl_TessCoord[1]*gl_in[2].gl_Position.xyz;
|
||||
|
||||
// save some computations
|
||||
uvwSquared *= 3.0;
|
||||
|
||||
// compute PN position
|
||||
vec3 pnPos = gl_in[0].gl_Position.xyz*uvwCubed[2]
|
||||
+ gl_in[1].gl_Position.xyz*uvwCubed[0]
|
||||
+ gl_in[2].gl_Position.xyz*uvwCubed[1]
|
||||
+ b210*uvwSquared[2]*uvw[0]
|
||||
+ b120*uvwSquared[0]*uvw[2]
|
||||
+ b201*uvwSquared[2]*uvw[1]
|
||||
+ b021*uvwSquared[0]*uvw[1]
|
||||
+ b102*uvwSquared[1]*uvw[2]
|
||||
+ b012*uvwSquared[1]*uvw[0]
|
||||
+ b111*6.0*uvw[0]*uvw[1]*uvw[2];
|
||||
|
||||
// final position and normal
|
||||
vec3 finalPos = (1.0-ubo.tessAlpha)*barPos + ubo.tessAlpha*pnPos;
|
||||
gl_Position = ubo.projection * ubo.model * vec4(finalPos,1.0);
|
||||
}
|
||||
313
samples/Gerber Image/FelinaePurr-B.Cu.gbl
Normal file
313
samples/Gerber Image/FelinaePurr-B.Cu.gbl
Normal file
@@ -0,0 +1,313 @@
|
||||
G04 #@! TF.FileFunction,Copper,L2,Bot,Signal*
|
||||
%FSLAX46Y46*%
|
||||
G04 Gerber Fmt 4.6, Leading zero omitted, Abs format (unit mm)*
|
||||
G04 Created by KiCad (PCBNEW (2016-07-14 BZR 6980)-product) date Sunday, 23 April 2017 'PMt' 23:49:01*
|
||||
%MOMM*%
|
||||
%LPD*%
|
||||
G01*
|
||||
G04 APERTURE LIST*
|
||||
%ADD10C,0.150000*%
|
||||
%ADD11C,0.175000*%
|
||||
%ADD12R,1.727200X2.032000*%
|
||||
%ADD13O,1.727200X2.032000*%
|
||||
%ADD14R,2.032000X1.727200*%
|
||||
%ADD15O,2.032000X1.727200*%
|
||||
%ADD16C,1.300000*%
|
||||
%ADD17C,2.800000*%
|
||||
%ADD18C,0.685800*%
|
||||
%ADD19C,0.800000*%
|
||||
%ADD20C,0.400000*%
|
||||
%ADD21C,0.800000*%
|
||||
%ADD22C,0.300000*%
|
||||
%ADD23C,0.500000*%
|
||||
%ADD24C,0.180000*%
|
||||
G04 APERTURE END LIST*
|
||||
D10*
|
||||
D11*
|
||||
X162816666Y-95670833D02*
|
||||
X162883333Y-95637500D01*
|
||||
X163016666Y-95637500D01*
|
||||
X163083333Y-95670833D01*
|
||||
X163150000Y-95737500D01*
|
||||
X163183333Y-95804166D01*
|
||||
X163183333Y-95937500D01*
|
||||
X163150000Y-96004166D01*
|
||||
X163083333Y-96070833D01*
|
||||
X163016666Y-96104166D01*
|
||||
X162883333Y-96104166D01*
|
||||
X162816666Y-96070833D01*
|
||||
X162950000Y-95404166D02*
|
||||
X163116666Y-95437500D01*
|
||||
X163283333Y-95537500D01*
|
||||
X163383333Y-95704166D01*
|
||||
X163416666Y-95870833D01*
|
||||
X157450000Y-95870833D01*
|
||||
X157483333Y-95837500D01*
|
||||
X157550000Y-95804166D01*
|
||||
X156816666Y-95504166D02*
|
||||
X156950000Y-95504166D01*
|
||||
X157016666Y-95537500D01*
|
||||
X157050000Y-95570833D01*
|
||||
X157116666Y-95670833D01*
|
||||
X157150000Y-95804166D01*
|
||||
X157150000Y-96070833D01*
|
||||
X157116666Y-96137500D01*
|
||||
X157083333Y-96170833D01*
|
||||
X157016666Y-96204166D01*
|
||||
X156883333Y-96204166D01*
|
||||
X156816666Y-96170833D01*
|
||||
X156783333Y-96137500D01*
|
||||
X156750000Y-96070833D01*
|
||||
X156750000Y-95904166D01*
|
||||
X156783333Y-95837500D01*
|
||||
X156816666Y-95804166D01*
|
||||
X156883333Y-95770833D01*
|
||||
X157016666Y-95770833D01*
|
||||
X157083333Y-95804166D01*
|
||||
X157116666Y-95837500D01*
|
||||
X157150000Y-95904166D01*
|
||||
X156450000Y-95937500D02*
|
||||
X155916666Y-95937500D01*
|
||||
X155616666Y-96170833D02*
|
||||
X155516666Y-96204166D01*
|
||||
X155350000Y-96204166D01*
|
||||
X155283333Y-96170833D01*
|
||||
X155250000Y-96137500D01*
|
||||
X155216666Y-96070833D01*
|
||||
X155216666Y-96004166D01*
|
||||
X155250000Y-95937500D01*
|
||||
X155283333Y-95904166D01*
|
||||
X155350000Y-95870833D01*
|
||||
X155483333Y-95837500D01*
|
||||
X155550000Y-95804166D01*
|
||||
X155583333Y-95770833D01*
|
||||
X155616666Y-95704166D01*
|
||||
X155616666Y-95637500D01*
|
||||
X155583333Y-95570833D01*
|
||||
X155550000Y-95537500D01*
|
||||
X155483333Y-95504166D01*
|
||||
X155316666Y-95504166D01*
|
||||
X155216666Y-95537500D01*
|
||||
X155016666Y-95737500D02*
|
||||
X154750000Y-95737500D01*
|
||||
X154916666Y-95504166D02*
|
||||
X154916666Y-96104166D01*
|
||||
X154883333Y-96170833D01*
|
||||
X154816666Y-96204166D01*
|
||||
X154750000Y-96204166D01*
|
||||
X154216666Y-95737500D02*
|
||||
X154216666Y-96204166D01*
|
||||
X154516666Y-95737500D02*
|
||||
X154516666Y-96104166D01*
|
||||
X154483333Y-96170833D01*
|
||||
X154416666Y-96204166D01*
|
||||
X154316666Y-96204166D01*
|
||||
X154250000Y-96170833D01*
|
||||
X154216666Y-96137500D01*
|
||||
X153583333Y-96204166D02*
|
||||
X153583333Y-95504166D01*
|
||||
X153583333Y-96170833D02*
|
||||
X153650000Y-96204166D01*
|
||||
X153783333Y-96204166D01*
|
||||
X156883333Y-96795833D01*
|
||||
X156850000Y-96762500D01*
|
||||
X156883333Y-96729166D01*
|
||||
X156883333Y-96795833D01*
|
||||
X156450000Y-97429166D02*
|
||||
X156516666Y-97395833D01*
|
||||
X156550000Y-97329166D01*
|
||||
X156550000Y-96729166D01*
|
||||
X156183333Y-96962500D02*
|
||||
X155650000Y-97162500D01*
|
||||
X156183333Y-97362500D01*
|
||||
X154883333Y-96729166D02*
|
||||
X154483333Y-96729166D01*
|
||||
X154683333Y-97429166D02*
|
||||
X154683333Y-96729166D01*
|
||||
X154250000Y-97429166D02*
|
||||
X154250000Y-96962500D01*
|
||||
X154250000Y-97095833D02*
|
||||
X154216666Y-97029166D01*
|
||||
X154183333Y-96995833D01*
|
||||
X154116666Y-96962500D01*
|
||||
X154050000Y-96962500D01*
|
||||
X153516666Y-97429166D02*
|
||||
X153516666Y-97062500D01*
|
||||
X153550000Y-96995833D01*
|
||||
X153616666Y-96962500D01*
|
||||
X153750000Y-96962500D01*
|
||||
X153816666Y-96995833D01*
|
||||
X153516666Y-97395833D02*
|
||||
X153583333Y-97429166D01*
|
||||
X153750000Y-97429166D01*
|
||||
X153816666Y-97395833D01*
|
||||
X153850000Y-97329166D01*
|
||||
X153850000Y-97262500D01*
|
||||
X153816666Y-97195833D01*
|
||||
X153750000Y-97162500D01*
|
||||
X153583333Y-97162500D01*
|
||||
X153516666Y-97129166D01*
|
||||
X153183333Y-96962500D02*
|
||||
X153183333Y-97662500D01*
|
||||
X153183333Y-96995833D02*
|
||||
X153116666Y-96962500D01*
|
||||
X152983333Y-96962500D01*
|
||||
X152916666Y-96995833D01*
|
||||
X152883333Y-97029166D01*
|
||||
X152850000Y-97095833D01*
|
||||
X152850000Y-97295833D01*
|
||||
X152883333Y-97362500D01*
|
||||
X152916666Y-97395833D01*
|
||||
X152983333Y-97429166D01*
|
||||
X153116666Y-97429166D01*
|
||||
X153183333Y-97395833D01*
|
||||
X152550000Y-97429166D02*
|
||||
X152550000Y-96962500D01*
|
||||
X152550000Y-96729166D02*
|
||||
X152583333Y-96762500D01*
|
||||
X152550000Y-96795833D01*
|
||||
X152516666Y-96762500D01*
|
||||
X152550000Y-96729166D01*
|
||||
X152550000Y-96795833D01*
|
||||
X151950000Y-97395833D02*
|
||||
X152016666Y-97429166D01*
|
||||
X152150000Y-97429166D01*
|
||||
X152216666Y-97395833D01*
|
||||
X152250000Y-97329166D01*
|
||||
X152250000Y-97062500D01*
|
||||
X152216666Y-96995833D01*
|
||||
X152150000Y-96962500D01*
|
||||
X152016666Y-96962500D01*
|
||||
X151950000Y-96995833D01*
|
||||
X151916666Y-97062500D01*
|
||||
X151916666Y-97129166D01*
|
||||
X152250000Y-97195833D01*
|
||||
X151616666Y-97429166D02*
|
||||
X151616666Y-96962500D01*
|
||||
X151616666Y-97095833D02*
|
||||
X151583333Y-97029166D01*
|
||||
X151550000Y-96995833D01*
|
||||
X151483333Y-96962500D01*
|
||||
X151416666Y-96962500D01*
|
||||
D12*
|
||||
X175640000Y-81600000D03*
|
||||
D13*
|
||||
X173100000Y-81600000D03*
|
||||
X170560000Y-81600000D03*
|
||||
D14*
|
||||
X184000000Y-86460000D03*
|
||||
D15*
|
||||
X184000000Y-89000000D03*
|
||||
X184000000Y-91540000D03*
|
||||
D16*
|
||||
X152900000Y-88350000D03*
|
||||
X152900000Y-90350000D03*
|
||||
X152900000Y-92850000D03*
|
||||
X152900000Y-85850000D03*
|
||||
D17*
|
||||
X150800000Y-83500000D03*
|
||||
X150800000Y-95200000D03*
|
||||
D18*
|
||||
X173700000Y-89200000D03*
|
||||
X162300004Y-87000000D03*
|
||||
X159600000Y-82700000D03*
|
||||
X161700000Y-94600000D03*
|
||||
X176200000Y-96600000D03*
|
||||
X179600000Y-91700000D03*
|
||||
X158100000Y-83900000D03*
|
||||
X168600000Y-89399998D03*
|
||||
X167200000Y-85000000D03*
|
||||
X159600000Y-81100000D03*
|
||||
X163800000Y-81100000D03*
|
||||
D19*
|
||||
X159300000Y-87400000D03*
|
||||
X167300000Y-96600000D03*
|
||||
X167300000Y-94500000D03*
|
||||
X160900000Y-87400000D03*
|
||||
D18*
|
||||
X174900000Y-90299999D03*
|
||||
X174900000Y-85300000D03*
|
||||
D19*
|
||||
X166500002Y-90900000D03*
|
||||
X177200000Y-90200000D03*
|
||||
X168000000Y-87400000D03*
|
||||
X173800000Y-87400000D03*
|
||||
D18*
|
||||
X154500000Y-89792900D03*
|
||||
X154500000Y-88907100D03*
|
||||
D20*
|
||||
X167200000Y-87999998D02*
|
||||
X168257101Y-89057099D01*
|
||||
X167200000Y-85000000D02*
|
||||
X167200000Y-87999998D01*
|
||||
X168257101Y-89057099D02*
|
||||
X168600000Y-89399998D01*
|
||||
D21*
|
||||
X163800000Y-81100000D02*
|
||||
X159600000Y-81100000D01*
|
||||
D22*
|
||||
X159300000Y-87965685D02*
|
||||
X159300000Y-87400000D01*
|
||||
X159300000Y-88600000D02*
|
||||
X159300000Y-87965685D01*
|
||||
X167300000Y-96600000D02*
|
||||
X159300000Y-88600000D01*
|
||||
X167300000Y-94500000D02*
|
||||
X160900000Y-88100000D01*
|
||||
X160900000Y-88100000D02*
|
||||
X160900000Y-87400000D01*
|
||||
D23*
|
||||
X174900000Y-85300000D02*
|
||||
X174900000Y-90299999D01*
|
||||
D22*
|
||||
X177200000Y-90200000D02*
|
||||
X175300000Y-92100000D01*
|
||||
X175300000Y-92100000D02*
|
||||
X167700002Y-92100000D01*
|
||||
X167700002Y-92100000D02*
|
||||
X166500002Y-90900000D01*
|
||||
X173800000Y-87400000D02*
|
||||
X168000000Y-87400000D01*
|
||||
X154500000Y-88907100D02*
|
||||
X154342900Y-88907100D01*
|
||||
X154342900Y-88907100D02*
|
||||
X152900000Y-90350000D01*
|
||||
D24*
|
||||
G36*
|
||||
X159316814Y-80416329D02*
|
||||
X159076741Y-80576741D01*
|
||||
X158916329Y-80816814D01*
|
||||
X158860000Y-81100000D01*
|
||||
X158916329Y-81383186D01*
|
||||
X159076741Y-81623259D01*
|
||||
X159316814Y-81783671D01*
|
||||
X159600000Y-81840000D01*
|
||||
X163800000Y-81840000D01*
|
||||
X164083186Y-81783671D01*
|
||||
X176823872Y-82748661D01*
|
||||
X176850260Y-82616000D01*
|
||||
X176850260Y-82265373D01*
|
||||
X151860838Y-81760869D01*
|
||||
X151114549Y-81487287D01*
|
||||
X150320374Y-81520123D01*
|
||||
X149739162Y-81760869D01*
|
||||
X149586248Y-82054317D01*
|
||||
X148415000Y-82054317D01*
|
||||
X148415000Y-81040874D01*
|
||||
X148467041Y-80779242D01*
|
||||
X148592092Y-80592091D01*
|
||||
X148779241Y-80467042D01*
|
||||
X149040874Y-80415000D01*
|
||||
X159323495Y-80415000D01*
|
||||
X159316814Y-80416329D01*
|
||||
X159316814Y-80416329D01*
|
||||
G37*
|
||||
X159316814Y-80416329D02*
|
||||
X159076741Y-80576741D01*
|
||||
X158916329Y-80816814D01*
|
||||
X158860000Y-81100000D01*
|
||||
X158916329Y-81383186D01*
|
||||
X159076741Y-81623259D01*
|
||||
X159323495Y-80415000D01*
|
||||
X159316814Y-80416329D01*
|
||||
M02*
|
||||
40
samples/Gerber Image/FelinaePurr-B.Mask.gbs
Normal file
40
samples/Gerber Image/FelinaePurr-B.Mask.gbs
Normal file
@@ -0,0 +1,40 @@
|
||||
G04 #@! TF.FileFunction,Soldermask,Bot*
|
||||
%FSLAX46Y46*%
|
||||
G04 Gerber Fmt 4.6, Leading zero omitted, Abs format (unit mm)*
|
||||
G04 Created by KiCad (PCBNEW (2016-07-14 BZR 6980)-product) date Sunday, 23 April 2017 'PMt' 23:49:01*
|
||||
%MOMM*%
|
||||
%LPD*%
|
||||
G01*
|
||||
G04 APERTURE LIST*
|
||||
%ADD10C,0.150000*%
|
||||
%ADD11R,1.727200X2.032000*%
|
||||
%ADD12O,1.727200X2.032000*%
|
||||
%ADD13R,2.032000X1.727200*%
|
||||
%ADD14O,2.032000X1.727200*%
|
||||
%ADD15C,1.300000*%
|
||||
%ADD16C,2.800000*%
|
||||
%ADD17C,1.200000*%
|
||||
G04 APERTURE END LIST*
|
||||
D10*
|
||||
D11*
|
||||
X175640000Y-81600000D03*
|
||||
D12*
|
||||
X173100000Y-81600000D03*
|
||||
X170560000Y-81600000D03*
|
||||
D13*
|
||||
X184000000Y-86460000D03*
|
||||
D14*
|
||||
X184000000Y-89000000D03*
|
||||
X184000000Y-91540000D03*
|
||||
D15*
|
||||
X152900000Y-88350000D03*
|
||||
X152900000Y-90350000D03*
|
||||
X152900000Y-92850000D03*
|
||||
X152900000Y-85850000D03*
|
||||
D16*
|
||||
X150800000Y-83500000D03*
|
||||
X150800000Y-95200000D03*
|
||||
D17*
|
||||
X150800000Y-87100000D03*
|
||||
X150800000Y-91600000D03*
|
||||
M02*
|
||||
245
samples/Gerber Image/FelinaePurr-B.SilkS.gbo
Normal file
245
samples/Gerber Image/FelinaePurr-B.SilkS.gbo
Normal file
@@ -0,0 +1,245 @@
|
||||
G04 #@! TF.FileFunction,Legend,Bot*
|
||||
%FSLAX46Y46*%
|
||||
G04 Gerber Fmt 4.6, Leading zero omitted, Abs format (unit mm)*
|
||||
G04 Created by KiCad (PCBNEW (2016-07-14 BZR 6980)-product) date Sunday, 23 April 2017 'PMt' 23:49:01*
|
||||
%MOMM*%
|
||||
%LPD*%
|
||||
G01*
|
||||
G04 APERTURE LIST*
|
||||
%ADD10C,0.150000*%
|
||||
%ADD11C,0.175000*%
|
||||
%ADD12C,0.375000*%
|
||||
%ADD13C,0.254000*%
|
||||
%ADD14R,1.727200X2.032000*%
|
||||
%ADD15O,1.727200X2.032000*%
|
||||
%ADD16R,2.032000X1.727200*%
|
||||
%ADD17O,2.032000X1.727200*%
|
||||
%ADD18C,1.300000*%
|
||||
%ADD19C,2.800000*%
|
||||
%ADD20C,1.200000*%
|
||||
G04 APERTURE END LIST*
|
||||
D10*
|
||||
D11*
|
||||
X164233333Y-82450000D02*
|
||||
X164133333Y-82483333D01*
|
||||
X164100000Y-82516666D01*
|
||||
X164066666Y-82583333D01*
|
||||
X164066666Y-82683333D01*
|
||||
X164100000Y-82750000D01*
|
||||
X164133333Y-82783333D01*
|
||||
X164200000Y-82816666D01*
|
||||
X164466666Y-82816666D01*
|
||||
X164466666Y-82116666D01*
|
||||
X164233333Y-82116666D01*
|
||||
X164166666Y-82150000D01*
|
||||
X164133333Y-82183333D01*
|
||||
X164100000Y-82250000D01*
|
||||
X164100000Y-82316666D01*
|
||||
X164133333Y-82383333D01*
|
||||
X164166666Y-82416666D01*
|
||||
X164233333Y-82450000D01*
|
||||
X164466666Y-82450000D01*
|
||||
X163666666Y-82816666D02*
|
||||
X163733333Y-82783333D01*
|
||||
X163766666Y-82750000D01*
|
||||
X163800000Y-82683333D01*
|
||||
X163800000Y-82483333D01*
|
||||
X163766666Y-82416666D01*
|
||||
X163733333Y-82383333D01*
|
||||
X163666666Y-82350000D01*
|
||||
X163566666Y-82350000D01*
|
||||
X163500000Y-82383333D01*
|
||||
X163466666Y-82416666D01*
|
||||
X163433333Y-82483333D01*
|
||||
X163433333Y-82683333D01*
|
||||
X163466666Y-82750000D01*
|
||||
X163500000Y-82783333D01*
|
||||
X163566666Y-82816666D01*
|
||||
X163666666Y-82816666D01*
|
||||
X162833333Y-82816666D02*
|
||||
X162833333Y-82450000D01*
|
||||
X162866666Y-82383333D01*
|
||||
X162933333Y-82350000D01*
|
||||
X163066666Y-82350000D01*
|
||||
X163133333Y-82383333D01*
|
||||
X162833333Y-82783333D02*
|
||||
X162900000Y-82816666D01*
|
||||
X163066666Y-82816666D01*
|
||||
X163133333Y-82783333D01*
|
||||
X163166666Y-82716666D01*
|
||||
X163166666Y-82650000D01*
|
||||
X163133333Y-82583333D01*
|
||||
X163066666Y-82550000D01*
|
||||
X162900000Y-82550000D01*
|
||||
X162833333Y-82516666D01*
|
||||
X162500000Y-82816666D02*
|
||||
X162500000Y-82350000D01*
|
||||
X162500000Y-82483333D02*
|
||||
X162466666Y-82416666D01*
|
||||
X162433333Y-82383333D01*
|
||||
X162366666Y-82350000D01*
|
||||
X162300000Y-82350000D01*
|
||||
X161766666Y-82816666D02*
|
||||
X161766666Y-82116666D01*
|
||||
X161766666Y-82783333D02*
|
||||
X161833333Y-82816666D01*
|
||||
X161966666Y-82816666D01*
|
||||
X162033333Y-82783333D01*
|
||||
X162066666Y-82750000D01*
|
||||
X162100000Y-82683333D01*
|
||||
X162100000Y-82483333D01*
|
||||
X162066666Y-82416666D01*
|
||||
X162033333Y-82383333D01*
|
||||
X161966666Y-82350000D01*
|
||||
X161833333Y-82350000D01*
|
||||
X161766666Y-82383333D01*
|
||||
X160933333Y-82350000D02*
|
||||
X160433333Y-82350000D01*
|
||||
X160733333Y-82050000D02*
|
||||
X160933333Y-82950000D01*
|
||||
X160500000Y-82650000D02*
|
||||
X161000000Y-82650000D01*
|
||||
X160700000Y-82950000D02*
|
||||
X160500000Y-82050000D01*
|
||||
D12*
|
||||
X181899107Y-86482142D02*
|
||||
X180756250Y-86482142D01*
|
||||
X181327678Y-87053571D02*
|
||||
X181327678Y-85910714D01*
|
||||
X179327678Y-85553571D02*
|
||||
X180041964Y-85553571D01*
|
||||
X180113392Y-86267857D01*
|
||||
X180041964Y-86196428D01*
|
||||
X179899107Y-86125000D01*
|
||||
X179541964Y-86125000D01*
|
||||
X179399107Y-86196428D01*
|
||||
X179327678Y-86267857D01*
|
||||
X179256250Y-86410714D01*
|
||||
X179256250Y-86767857D01*
|
||||
X179327678Y-86910714D01*
|
||||
X179399107Y-86982142D01*
|
||||
X179541964Y-87053571D01*
|
||||
X179899107Y-87053571D01*
|
||||
X180041964Y-86982142D01*
|
||||
X180113392Y-86910714D01*
|
||||
X178827678Y-85553571D02*
|
||||
X178327678Y-87053571D01*
|
||||
X177827678Y-85553571D01*
|
||||
X176184821Y-87053571D02*
|
||||
X176184821Y-85553571D01*
|
||||
X175827678Y-85553571D01*
|
||||
X175613392Y-85625000D01*
|
||||
X175470535Y-85767857D01*
|
||||
X175399107Y-85910714D01*
|
||||
X175327678Y-86196428D01*
|
||||
X175327678Y-86410714D01*
|
||||
X175399107Y-86696428D01*
|
||||
X175470535Y-86839285D01*
|
||||
X175613392Y-86982142D01*
|
||||
X175827678Y-87053571D01*
|
||||
X176184821Y-87053571D01*
|
||||
X174684821Y-86267857D02*
|
||||
X174184821Y-86267857D01*
|
||||
X173970535Y-87053571D02*
|
||||
X174684821Y-87053571D01*
|
||||
X174684821Y-85553571D01*
|
||||
X173970535Y-85553571D01*
|
||||
X173541964Y-85553571D02*
|
||||
X173041964Y-87053571D01*
|
||||
X172541964Y-85553571D01*
|
||||
X181041964Y-89678571D02*
|
||||
X181541964Y-88964285D01*
|
||||
X181899107Y-89678571D02*
|
||||
X181899107Y-88178571D01*
|
||||
X181327678Y-88178571D01*
|
||||
X181184821Y-88250000D01*
|
||||
X181113392Y-88321428D01*
|
||||
X181041964Y-88464285D01*
|
||||
X181041964Y-88678571D01*
|
||||
X181113392Y-88821428D01*
|
||||
X181184821Y-88892857D01*
|
||||
X181327678Y-88964285D01*
|
||||
X181899107Y-88964285D01*
|
||||
X180541964Y-88178571D02*
|
||||
X179541964Y-89678571D01*
|
||||
X179541964Y-88178571D02*
|
||||
X180541964Y-89678571D01*
|
||||
X179184821Y-88178571D02*
|
||||
X178327678Y-88178571D01*
|
||||
X178756250Y-89678571D02*
|
||||
X178756250Y-88178571D01*
|
||||
X177970535Y-88178571D02*
|
||||
X176970535Y-89678571D01*
|
||||
X176970535Y-88178571D02*
|
||||
X177970535Y-89678571D01*
|
||||
X181113392Y-90875000D02*
|
||||
X181256250Y-90803571D01*
|
||||
X181470535Y-90803571D01*
|
||||
X181684821Y-90875000D01*
|
||||
X181827678Y-91017857D01*
|
||||
X181899107Y-91160714D01*
|
||||
X181970535Y-91446428D01*
|
||||
X181970535Y-91660714D01*
|
||||
X181899107Y-91946428D01*
|
||||
X181827678Y-92089285D01*
|
||||
X181684821Y-92232142D01*
|
||||
X181470535Y-92303571D01*
|
||||
X181327678Y-92303571D01*
|
||||
X181113392Y-92232142D01*
|
||||
X181041964Y-92160714D01*
|
||||
X181041964Y-91660714D01*
|
||||
X181327678Y-91660714D01*
|
||||
X180399107Y-92303571D02*
|
||||
X180399107Y-90803571D01*
|
||||
X179541964Y-92303571D01*
|
||||
X179541964Y-90803571D01*
|
||||
X178827678Y-92303571D02*
|
||||
X178827678Y-90803571D01*
|
||||
X178470535Y-90803571D01*
|
||||
X178256250Y-90875000D01*
|
||||
X178113392Y-91017857D01*
|
||||
X178041964Y-91160714D01*
|
||||
X177970535Y-91446428D01*
|
||||
X177970535Y-91660714D01*
|
||||
X178041964Y-91946428D01*
|
||||
X178113392Y-92089285D01*
|
||||
X178256250Y-92232142D01*
|
||||
X178470535Y-92303571D01*
|
||||
X178827678Y-92303571D01*
|
||||
D13*
|
||||
G36*
|
||||
X164873000Y-87373000D02*
|
||||
X154627000Y-87373000D01*
|
||||
X154627000Y-83127000D01*
|
||||
X164873000Y-83127000D01*
|
||||
X164873000Y-87373000D01*
|
||||
X164873000Y-87373000D01*
|
||||
G37*
|
||||
X164873000Y-87373000D02*
|
||||
X154627000Y-87373000D01*
|
||||
X154627000Y-83127000D01*
|
||||
X164873000Y-83127000D01*
|
||||
X164873000Y-87373000D01*
|
||||
%LPC*%
|
||||
D14*
|
||||
X175640000Y-81600000D03*
|
||||
D15*
|
||||
X173100000Y-81600000D03*
|
||||
X170560000Y-81600000D03*
|
||||
D16*
|
||||
X184000000Y-86460000D03*
|
||||
D17*
|
||||
X184000000Y-89000000D03*
|
||||
X184000000Y-91540000D03*
|
||||
D18*
|
||||
X152900000Y-88350000D03*
|
||||
X152900000Y-90350000D03*
|
||||
X152900000Y-92850000D03*
|
||||
X152900000Y-85850000D03*
|
||||
D19*
|
||||
X150800000Y-83500000D03*
|
||||
X150800000Y-95200000D03*
|
||||
D20*
|
||||
X150800000Y-87100000D03*
|
||||
X150800000Y-91600000D03*
|
||||
M02*
|
||||
571
samples/Gerber Image/FelinaePurr-F.Cu.gtl
Normal file
571
samples/Gerber Image/FelinaePurr-F.Cu.gtl
Normal file
@@ -0,0 +1,571 @@
|
||||
G04 #@! TF.FileFunction,Copper,L1,Top,Signal*
|
||||
%FSLAX46Y46*%
|
||||
G04 Gerber Fmt 4.6, Leading zero omitted, Abs format (unit mm)*
|
||||
G04 Created by KiCad (PCBNEW (2016-07-14 BZR 6980)-product) date Sunday, 23 April 2017 'PMt' 23:49:01*
|
||||
%MOMM*%
|
||||
%LPD*%
|
||||
G01*
|
||||
G04 APERTURE LIST*
|
||||
%ADD10C,0.150000*%
|
||||
%ADD11R,0.800000X0.750000*%
|
||||
%ADD12R,0.750000X0.800000*%
|
||||
%ADD13R,1.198880X1.198880*%
|
||||
%ADD14R,1.727200X2.032000*%
|
||||
%ADD15O,1.727200X2.032000*%
|
||||
%ADD16R,0.500000X0.900000*%
|
||||
%ADD17R,0.450000X1.750000*%
|
||||
%ADD18R,1.060000X0.650000*%
|
||||
%ADD19R,2.032000X1.727200*%
|
||||
%ADD20O,2.032000X1.727200*%
|
||||
%ADD21R,0.900000X0.500000*%
|
||||
%ADD22C,1.300000*%
|
||||
%ADD23C,2.800000*%
|
||||
%ADD24C,0.685800*%
|
||||
%ADD25C,0.800000*%
|
||||
%ADD26C,0.500000*%
|
||||
%ADD27C,0.300000*%
|
||||
%ADD28C,0.400000*%
|
||||
%ADD29C,0.800000*%
|
||||
%ADD30C,0.250000*%
|
||||
%ADD31C,0.180000*%
|
||||
%ADD32C,0.160000*%
|
||||
G04 APERTURE END LIST*
|
||||
D10*
|
||||
D11*
|
||||
X165350000Y-82700000D03*
|
||||
X163850000Y-82700000D03*
|
||||
X162350000Y-82700000D03*
|
||||
X160850000Y-82700000D03*
|
||||
D12*
|
||||
X172700000Y-87350000D03*
|
||||
X172700000Y-88850000D03*
|
||||
D11*
|
||||
X181100000Y-90600000D03*
|
||||
X179600000Y-90600000D03*
|
||||
D13*
|
||||
X168800000Y-94500000D03*
|
||||
X168800000Y-96598040D03*
|
||||
X170800000Y-94500000D03*
|
||||
X170800000Y-96598040D03*
|
||||
X172800000Y-94500000D03*
|
||||
X172800000Y-96598040D03*
|
||||
D14*
|
||||
X175640000Y-81600000D03*
|
||||
D15*
|
||||
X173100000Y-81600000D03*
|
||||
X170560000Y-81600000D03*
|
||||
D16*
|
||||
X181100000Y-89000000D03*
|
||||
X179600000Y-89000000D03*
|
||||
X179600000Y-87300000D03*
|
||||
X181100000Y-87300000D03*
|
||||
D17*
|
||||
X156775000Y-92600000D03*
|
||||
X157425000Y-92600000D03*
|
||||
X158075000Y-92600000D03*
|
||||
X158725000Y-92600000D03*
|
||||
X159375000Y-92600000D03*
|
||||
X160025000Y-92600000D03*
|
||||
X160675000Y-92600000D03*
|
||||
X161325000Y-92600000D03*
|
||||
X161975000Y-92600000D03*
|
||||
X162625000Y-92600000D03*
|
||||
X163275000Y-92600000D03*
|
||||
X163925000Y-92600000D03*
|
||||
X164575000Y-92600000D03*
|
||||
X165225000Y-92600000D03*
|
||||
X165225000Y-85400000D03*
|
||||
X164575000Y-85400000D03*
|
||||
X163925000Y-85400000D03*
|
||||
X163275000Y-85400000D03*
|
||||
X162625000Y-85400000D03*
|
||||
X161975000Y-85400000D03*
|
||||
X161325000Y-85400000D03*
|
||||
X160675000Y-85400000D03*
|
||||
X160025000Y-85400000D03*
|
||||
X159375000Y-85400000D03*
|
||||
X158725000Y-85400000D03*
|
||||
X158075000Y-85400000D03*
|
||||
X157425000Y-85400000D03*
|
||||
X156775000Y-85400000D03*
|
||||
D18*
|
||||
X175000000Y-87150000D03*
|
||||
X175000000Y-88100000D03*
|
||||
X175000000Y-89050000D03*
|
||||
X177200000Y-89050000D03*
|
||||
X177200000Y-87150000D03*
|
||||
D19*
|
||||
X184000000Y-86460000D03*
|
||||
D20*
|
||||
X184000000Y-89000000D03*
|
||||
X184000000Y-91540000D03*
|
||||
D13*
|
||||
X174900000Y-94501960D03*
|
||||
X174900000Y-96600000D03*
|
||||
D11*
|
||||
X159000000Y-94600000D03*
|
||||
X160500000Y-94600000D03*
|
||||
X162350000Y-81100000D03*
|
||||
X160850000Y-81100000D03*
|
||||
D21*
|
||||
X171150000Y-88600000D03*
|
||||
X171150000Y-90100000D03*
|
||||
X169550000Y-88600000D03*
|
||||
X169550000Y-90100000D03*
|
||||
X168800000Y-91300000D03*
|
||||
X168800000Y-92800000D03*
|
||||
X170800000Y-91300000D03*
|
||||
X170800000Y-92800000D03*
|
||||
X172800000Y-91300000D03*
|
||||
X172800000Y-92800000D03*
|
||||
X174900000Y-91300000D03*
|
||||
X174900000Y-92800000D03*
|
||||
X176600000Y-91300000D03*
|
||||
X176600000Y-92800000D03*
|
||||
D22*
|
||||
X152900000Y-88350000D03*
|
||||
X152900000Y-90350000D03*
|
||||
X152900000Y-92850000D03*
|
||||
X152900000Y-85850000D03*
|
||||
D23*
|
||||
X150800000Y-83500000D03*
|
||||
X150800000Y-95200000D03*
|
||||
D24*
|
||||
X173700000Y-89200000D03*
|
||||
X162300004Y-87000000D03*
|
||||
X159600000Y-82700000D03*
|
||||
X161700000Y-94600000D03*
|
||||
X176200000Y-96600000D03*
|
||||
X179600000Y-91700000D03*
|
||||
X158100000Y-83900000D03*
|
||||
X168600000Y-89399998D03*
|
||||
X167200000Y-85000000D03*
|
||||
X159600000Y-81100000D03*
|
||||
X163800000Y-81100000D03*
|
||||
D25*
|
||||
X159300000Y-87400000D03*
|
||||
X167300000Y-96600000D03*
|
||||
X167300000Y-94500000D03*
|
||||
X160900000Y-87400000D03*
|
||||
D24*
|
||||
X174900000Y-90299999D03*
|
||||
X174900000Y-85300000D03*
|
||||
D25*
|
||||
X166500002Y-90900000D03*
|
||||
X177200000Y-90200000D03*
|
||||
X168000000Y-87400000D03*
|
||||
X173800000Y-87400000D03*
|
||||
D24*
|
||||
X154500000Y-89792900D03*
|
||||
X154500000Y-88907100D03*
|
||||
D26*
|
||||
X165325000Y-82700000D02*
|
||||
X165325000Y-83475000D01*
|
||||
X165325000Y-83475000D02*
|
||||
X164900000Y-83900000D01*
|
||||
X164900000Y-83900000D02*
|
||||
X164250677Y-83900000D01*
|
||||
X163947598Y-84375049D02*
|
||||
X163927410Y-84395237D01*
|
||||
X164250677Y-83900000D02*
|
||||
X163947598Y-84203079D01*
|
||||
X163947598Y-84203079D02*
|
||||
X163947598Y-84375049D01*
|
||||
X163927410Y-84395237D02*
|
||||
X163927410Y-85400000D01*
|
||||
D27*
|
||||
X165325000Y-82700000D02*
|
||||
X165325000Y-82826415D01*
|
||||
D26*
|
||||
X165350000Y-82700000D02*
|
||||
X165325000Y-82700000D01*
|
||||
X172700000Y-88850000D02*
|
||||
X173350000Y-88850000D01*
|
||||
X173350000Y-88850000D02*
|
||||
X173700000Y-89200000D01*
|
||||
X175000000Y-89050000D02*
|
||||
X173850000Y-89050000D01*
|
||||
X173850000Y-89050000D02*
|
||||
X173700000Y-89200000D01*
|
||||
X175000000Y-88100000D02*
|
||||
X175000000Y-89050000D01*
|
||||
X163850000Y-82700000D02*
|
||||
X163850000Y-83378030D01*
|
||||
X163850000Y-83378030D02*
|
||||
X163295188Y-83932842D01*
|
||||
X163275000Y-84125000D02*
|
||||
X163295188Y-84104812D01*
|
||||
X163295188Y-84104812D02*
|
||||
X163295188Y-83932842D01*
|
||||
X163275000Y-85400000D02*
|
||||
X163275000Y-84125000D01*
|
||||
X160850000Y-82700000D02*
|
||||
X160850000Y-83575000D01*
|
||||
X160850000Y-83575000D02*
|
||||
X160875000Y-83600000D01*
|
||||
X160875000Y-83600000D02*
|
||||
X160900000Y-83600000D01*
|
||||
X161325000Y-85400000D02*
|
||||
X161325000Y-84025000D01*
|
||||
X161325000Y-84025000D02*
|
||||
X160900000Y-83600000D01*
|
||||
X160675000Y-92600000D02*
|
||||
X160675000Y-93800000D01*
|
||||
X160500000Y-94600000D02*
|
||||
X160500000Y-93975000D01*
|
||||
X160500000Y-93975000D02*
|
||||
X160675000Y-93800000D01*
|
||||
X163275000Y-85400000D02*
|
||||
X163275000Y-86509937D01*
|
||||
X163275000Y-86509937D02*
|
||||
X162784937Y-87000000D01*
|
||||
X162784937Y-87000000D02*
|
||||
X162300004Y-87000000D01*
|
||||
X161325000Y-86509929D02*
|
||||
X161815071Y-87000000D01*
|
||||
X161325000Y-85400000D02*
|
||||
X161325000Y-86509929D01*
|
||||
X161815071Y-87000000D02*
|
||||
X162300004Y-87000000D01*
|
||||
X159700000Y-82700000D02*
|
||||
X159600000Y-82700000D01*
|
||||
X160850000Y-82700000D02*
|
||||
X159700000Y-82700000D01*
|
||||
X160850000Y-82700000D02*
|
||||
X160850000Y-81100000D01*
|
||||
X160500000Y-94600000D02*
|
||||
X161700000Y-94600000D01*
|
||||
X158075000Y-85400000D02*
|
||||
X158075000Y-83925000D01*
|
||||
X158075000Y-83925000D02*
|
||||
X158100000Y-83900000D01*
|
||||
X158075000Y-85400000D02*
|
||||
X158725000Y-85400000D01*
|
||||
X179600000Y-90600000D02*
|
||||
X179600000Y-91700000D01*
|
||||
X174900000Y-96600000D02*
|
||||
X176200000Y-96600000D01*
|
||||
X172800000Y-96598040D02*
|
||||
X174898040Y-96598040D01*
|
||||
X174898040Y-96598040D02*
|
||||
X174900000Y-96600000D01*
|
||||
X169250000Y-85000000D02*
|
||||
X170560000Y-83690000D01*
|
||||
X170560000Y-83690000D02*
|
||||
X170560000Y-81600000D01*
|
||||
X167200000Y-85000000D02*
|
||||
X169250000Y-85000000D01*
|
||||
X168600000Y-90500000D02*
|
||||
X168600000Y-89399998D01*
|
||||
X168800000Y-91300000D02*
|
||||
X168800000Y-90700000D01*
|
||||
X168800000Y-90700000D02*
|
||||
X168600000Y-90500000D01*
|
||||
D28*
|
||||
X170500000Y-88600000D02*
|
||||
X171150000Y-88600000D01*
|
||||
D26*
|
||||
X169550000Y-88600000D02*
|
||||
X170500000Y-88600000D01*
|
||||
X168600000Y-89399998D02*
|
||||
X168750002Y-89399998D01*
|
||||
X168750002Y-89399998D02*
|
||||
X169550000Y-88600000D01*
|
||||
X162350000Y-82700000D02*
|
||||
X162350000Y-83575000D01*
|
||||
X162350000Y-83575000D02*
|
||||
X161977410Y-83947590D01*
|
||||
X161977410Y-83947590D02*
|
||||
X161977410Y-85400000D01*
|
||||
D29*
|
||||
X162350000Y-81100000D02*
|
||||
X163800000Y-81100000D01*
|
||||
D30*
|
||||
X174222599Y-89677401D02*
|
||||
X175726921Y-89677401D01*
|
||||
X175726921Y-89677401D02*
|
||||
X176250000Y-89154322D01*
|
||||
X176250000Y-89154322D02*
|
||||
X176250000Y-88675000D01*
|
||||
X176250000Y-88675000D02*
|
||||
X177200000Y-87725000D01*
|
||||
X177200000Y-87725000D02*
|
||||
X177200000Y-87150000D01*
|
||||
D26*
|
||||
X177200000Y-87150000D02*
|
||||
X179450000Y-87150000D01*
|
||||
X179450000Y-87150000D02*
|
||||
X179600000Y-87300000D01*
|
||||
X159000000Y-94600000D02*
|
||||
X159000000Y-94000000D01*
|
||||
X159000000Y-94000000D02*
|
||||
X158725000Y-93725000D01*
|
||||
X158725000Y-93725000D02*
|
||||
X158725000Y-92600000D01*
|
||||
D28*
|
||||
X174222599Y-89677401D02*
|
||||
X173800000Y-90100000D01*
|
||||
X159600000Y-96600000D02*
|
||||
X159000000Y-96000000D01*
|
||||
D27*
|
||||
X181100000Y-87300000D02*
|
||||
X181100000Y-89000000D01*
|
||||
X181100000Y-90600000D02*
|
||||
X181100000Y-89000000D01*
|
||||
X181100000Y-89000000D02*
|
||||
X184000000Y-89000000D01*
|
||||
D26*
|
||||
X168800000Y-94500000D02*
|
||||
X168800000Y-92800000D01*
|
||||
X168800000Y-96598040D02*
|
||||
X167301960Y-96598040D01*
|
||||
X167301960Y-96598040D02*
|
||||
X167300000Y-96600000D01*
|
||||
D27*
|
||||
X159300000Y-87400000D02*
|
||||
X160025000Y-86675000D01*
|
||||
X160025000Y-86675000D02*
|
||||
X160025000Y-85400000D01*
|
||||
D26*
|
||||
X170800000Y-92800000D02*
|
||||
X170800000Y-94500000D01*
|
||||
X167300000Y-94500000D02*
|
||||
X167300000Y-95065685D01*
|
||||
X167300000Y-95065685D02*
|
||||
X167734314Y-95499999D01*
|
||||
X167734314Y-95499999D02*
|
||||
X167876797Y-95499999D01*
|
||||
X167876797Y-95499999D02*
|
||||
X167878639Y-95501841D01*
|
||||
X167878639Y-95501841D02*
|
||||
X170603241Y-95501841D01*
|
||||
X170603241Y-95501841D02*
|
||||
X170800000Y-95698600D01*
|
||||
X170800000Y-95698600D02*
|
||||
X170800000Y-96598040D01*
|
||||
D27*
|
||||
X160675000Y-85400000D02*
|
||||
X160675000Y-86400000D01*
|
||||
X160900000Y-86900000D02*
|
||||
X160675000Y-86675000D01*
|
||||
X160675000Y-86675000D02*
|
||||
X160675000Y-86400000D01*
|
||||
X160900000Y-87400000D02*
|
||||
X160900000Y-86900000D01*
|
||||
D26*
|
||||
X172800000Y-92800000D02*
|
||||
X172800000Y-94500000D01*
|
||||
D27*
|
||||
X175640000Y-81600000D02*
|
||||
X175640000Y-84560000D01*
|
||||
X175640000Y-84560000D02*
|
||||
X174900000Y-85300000D01*
|
||||
D26*
|
||||
X176600000Y-91300000D02*
|
||||
X175599999Y-90299999D01*
|
||||
X175599999Y-90299999D02*
|
||||
X174900000Y-90299999D01*
|
||||
D29*
|
||||
X175640000Y-81600000D02*
|
||||
X180803600Y-81600000D01*
|
||||
X180803600Y-81600000D02*
|
||||
X184000000Y-84796400D01*
|
||||
X184000000Y-84796400D02*
|
||||
X184000000Y-86460000D01*
|
||||
D26*
|
||||
X174900000Y-92800000D02*
|
||||
X174900000Y-94501960D01*
|
||||
D27*
|
||||
X165934317Y-90900000D02*
|
||||
X166500002Y-90900000D01*
|
||||
X159900000Y-90900000D02*
|
||||
X165934317Y-90900000D01*
|
||||
X159375000Y-91425000D02*
|
||||
X159900000Y-90900000D01*
|
||||
X159375000Y-92600000D02*
|
||||
X159375000Y-91425000D01*
|
||||
X177200000Y-90200000D02*
|
||||
X177200000Y-89050000D01*
|
||||
X177200000Y-89050000D02*
|
||||
X179550000Y-89050000D01*
|
||||
X179550000Y-89050000D02*
|
||||
X179600000Y-89000000D01*
|
||||
X166000000Y-89400000D02*
|
||||
X167600001Y-87799999D01*
|
||||
X158400000Y-89400000D02*
|
||||
X166000000Y-89400000D01*
|
||||
X167600001Y-87799999D02*
|
||||
X168000000Y-87400000D01*
|
||||
X156775000Y-91025000D02*
|
||||
X158400000Y-89400000D01*
|
||||
X175000000Y-87150000D02*
|
||||
X174050000Y-87150000D01*
|
||||
X174050000Y-87150000D02*
|
||||
X173800000Y-87400000D01*
|
||||
X156775000Y-91025000D02*
|
||||
X156800000Y-91000000D01*
|
||||
X156775000Y-92600000D02*
|
||||
X156775000Y-91025000D01*
|
||||
D26*
|
||||
X169550000Y-90100000D02*
|
||||
X169600000Y-90100000D01*
|
||||
X169600000Y-90100000D02*
|
||||
X170800000Y-91300000D01*
|
||||
X174900000Y-91300000D02*
|
||||
X175100000Y-91300000D01*
|
||||
X175100000Y-91300000D02*
|
||||
X176600000Y-92800000D01*
|
||||
X171150000Y-90100000D02*
|
||||
X171600000Y-90100000D01*
|
||||
X171600000Y-90100000D02*
|
||||
X172800000Y-91300000D01*
|
||||
D27*
|
||||
X154500000Y-89792900D02*
|
||||
X154342900Y-89792900D01*
|
||||
X154342900Y-89792900D02*
|
||||
X152900000Y-88350000D01*
|
||||
X157560197Y-89599999D02*
|
||||
X154692901Y-89599999D01*
|
||||
X154692901Y-89599999D02*
|
||||
X154500000Y-89792900D01*
|
||||
X165225000Y-86712500D02*
|
||||
X165150000Y-86787500D01*
|
||||
X165225000Y-85400000D02*
|
||||
X165225000Y-86712500D01*
|
||||
X165150000Y-86787500D02*
|
||||
X165150000Y-87703552D01*
|
||||
X165150000Y-87703552D02*
|
||||
X163905962Y-88947590D01*
|
||||
X163905962Y-88947590D02*
|
||||
X158212605Y-88947591D01*
|
||||
X158212605Y-88947591D02*
|
||||
X157560197Y-89599999D01*
|
||||
X157353101Y-89100001D02*
|
||||
X154692901Y-89100001D01*
|
||||
X154692901Y-89100001D02*
|
||||
X154500000Y-88907100D01*
|
||||
X164650000Y-86787500D02*
|
||||
X164650000Y-87496448D01*
|
||||
X158005501Y-88447601D02*
|
||||
X157353101Y-89100001D01*
|
||||
X164575000Y-85400000D02*
|
||||
X164575000Y-86712500D01*
|
||||
X164575000Y-86712500D02*
|
||||
X164650000Y-86787500D01*
|
||||
X164650000Y-87496448D02*
|
||||
X163698847Y-88447601D01*
|
||||
X163698847Y-88447601D02*
|
||||
X158005501Y-88447601D01*
|
||||
D31*
|
||||
G36*
|
||||
X161443040Y-80386260D02*
|
||||
X161404451Y-80479422D01*
|
||||
X161363152Y-80451826D01*
|
||||
X161250000Y-80429319D01*
|
||||
X160450000Y-80429319D01*
|
||||
X160336848Y-80451826D01*
|
||||
X160240922Y-80515922D01*
|
||||
X160176826Y-80611848D01*
|
||||
X160154319Y-80725000D01*
|
||||
X160154319Y-81475000D01*
|
||||
X160176826Y-81588152D01*
|
||||
X160240922Y-81684078D01*
|
||||
X160310000Y-81730235D01*
|
||||
X160310000Y-82069765D01*
|
||||
X160240922Y-82115922D01*
|
||||
X160211470Y-82160000D01*
|
||||
X159949905Y-82160000D01*
|
||||
X159726444Y-82067210D01*
|
||||
X159474661Y-82066991D01*
|
||||
X159241959Y-82163141D01*
|
||||
X159063767Y-82341023D01*
|
||||
X158967210Y-82573556D01*
|
||||
X158966991Y-82825339D01*
|
||||
X159063141Y-83058041D01*
|
||||
X159241023Y-83236233D01*
|
||||
X159473556Y-83332790D01*
|
||||
X159725339Y-83333009D01*
|
||||
X159950439Y-83240000D01*
|
||||
X160211470Y-83240000D01*
|
||||
X160240922Y-83284078D01*
|
||||
X160310000Y-83330235D01*
|
||||
X160310000Y-83575000D01*
|
||||
X160351105Y-83781649D01*
|
||||
X160468162Y-83956838D01*
|
||||
X160493160Y-83981835D01*
|
||||
X160493162Y-83981838D01*
|
||||
X160568503Y-84032179D01*
|
||||
X160765644Y-84229319D01*
|
||||
X160450000Y-84229319D01*
|
||||
X160350000Y-84249210D01*
|
||||
X160250000Y-84229319D01*
|
||||
X159800000Y-84229319D01*
|
||||
X159700000Y-84249210D01*
|
||||
X159600000Y-84229319D01*
|
||||
X159150000Y-84229319D01*
|
||||
X159050000Y-84249210D01*
|
||||
X158950000Y-84229319D01*
|
||||
X158648548Y-84229319D01*
|
||||
X158732790Y-84026444D01*
|
||||
X172906000Y-81774000D01*
|
||||
X172906000Y-81426000D01*
|
||||
X172926000Y-81426000D01*
|
||||
X172926000Y-81406000D01*
|
||||
X173274000Y-81406000D01*
|
||||
X173274000Y-81426000D01*
|
||||
X173274000Y-81426000D01*
|
||||
G37*
|
||||
X173274000Y-81426000D02*
|
||||
X180070000Y-89624732D01*
|
||||
X180070000Y-89953439D01*
|
||||
X180000000Y-89939515D01*
|
||||
X179200000Y-89939515D01*
|
||||
X179090750Y-89961246D01*
|
||||
X178998132Y-90023132D01*
|
||||
X178936246Y-90115750D01*
|
||||
X172926000Y-81774000D01*
|
||||
X172906000Y-81774000D01*
|
||||
X172906000Y-81426000D01*
|
||||
X172926000Y-81426000D01*
|
||||
X172926000Y-81406000D01*
|
||||
X173274000Y-81406000D01*
|
||||
X173274000Y-81426000D01*
|
||||
D31*
|
||||
G36*
|
||||
X181810000Y-87900000D02*
|
||||
X181816851Y-87934442D01*
|
||||
X181836360Y-87963640D01*
|
||||
X181865558Y-87983149D01*
|
||||
X181900000Y-87990000D01*
|
||||
X185210000Y-87990000D01*
|
||||
X185210000Y-89910000D01*
|
||||
X182100000Y-89910000D01*
|
||||
X182065558Y-89916851D01*
|
||||
X182036360Y-89936360D01*
|
||||
X182016851Y-89965558D01*
|
||||
X182010000Y-90000000D01*
|
||||
X182010000Y-91310000D01*
|
||||
X180490000Y-91310000D01*
|
||||
X180490000Y-86190000D01*
|
||||
X181810000Y-86190000D01*
|
||||
X181810000Y-87900000D01*
|
||||
X181810000Y-87900000D01*
|
||||
G37*
|
||||
X181810000Y-87900000D02*
|
||||
X181816851Y-87934442D01*
|
||||
X181836360Y-87963640D01*
|
||||
X181865558Y-87983149D01*
|
||||
X181900000Y-87990000D01*
|
||||
X185210000Y-87990000D01*
|
||||
X185210000Y-89910000D01*
|
||||
X182100000Y-89910000D01*
|
||||
X182065558Y-89916851D01*
|
||||
X182036360Y-89936360D01*
|
||||
X182016851Y-89965558D01*
|
||||
X182010000Y-90000000D01*
|
||||
X182010000Y-91310000D01*
|
||||
X180490000Y-91310000D01*
|
||||
X180490000Y-86190000D01*
|
||||
X181810000Y-86190000D01*
|
||||
X181810000Y-87900000D01*
|
||||
M02*
|
||||
128
samples/Gerber Image/FelinaePurr-F.Mask.gts
Normal file
128
samples/Gerber Image/FelinaePurr-F.Mask.gts
Normal file
@@ -0,0 +1,128 @@
|
||||
G04 #@! TF.FileFunction,Soldermask,Top*
|
||||
%FSLAX46Y46*%
|
||||
G04 Gerber Fmt 4.6, Leading zero omitted, Abs format (unit mm)*
|
||||
G04 Created by KiCad (PCBNEW (2016-07-14 BZR 6980)-product) date Sunday, 23 April 2017 'PMt' 23:49:01*
|
||||
%MOMM*%
|
||||
%LPD*%
|
||||
G01*
|
||||
G04 APERTURE LIST*
|
||||
%ADD10C,0.150000*%
|
||||
%ADD11R,0.800000X0.750000*%
|
||||
%ADD12R,0.750000X0.800000*%
|
||||
%ADD13R,1.198880X1.198880*%
|
||||
%ADD14R,1.727200X2.032000*%
|
||||
%ADD15O,1.727200X2.032000*%
|
||||
%ADD16R,0.500000X0.900000*%
|
||||
%ADD17R,0.450000X1.750000*%
|
||||
%ADD18R,1.060000X0.650000*%
|
||||
%ADD19R,2.032000X1.727200*%
|
||||
%ADD20O,2.032000X1.727200*%
|
||||
%ADD21R,0.900000X0.500000*%
|
||||
%ADD22C,1.300000*%
|
||||
%ADD23C,2.800000*%
|
||||
%ADD24C,1.200000*%
|
||||
G04 APERTURE END LIST*
|
||||
D10*
|
||||
D11*
|
||||
X165350000Y-82700000D03*
|
||||
X163850000Y-82700000D03*
|
||||
X162350000Y-82700000D03*
|
||||
X160850000Y-82700000D03*
|
||||
D12*
|
||||
X172700000Y-87350000D03*
|
||||
X172700000Y-88850000D03*
|
||||
D11*
|
||||
X181100000Y-90600000D03*
|
||||
X179600000Y-90600000D03*
|
||||
D13*
|
||||
X168800000Y-94500000D03*
|
||||
X168800000Y-96598040D03*
|
||||
X170800000Y-94500000D03*
|
||||
X170800000Y-96598040D03*
|
||||
X172800000Y-94500000D03*
|
||||
X172800000Y-96598040D03*
|
||||
D14*
|
||||
X175640000Y-81600000D03*
|
||||
D15*
|
||||
X173100000Y-81600000D03*
|
||||
X170560000Y-81600000D03*
|
||||
D16*
|
||||
X181100000Y-89000000D03*
|
||||
X179600000Y-89000000D03*
|
||||
X179600000Y-87300000D03*
|
||||
X181100000Y-87300000D03*
|
||||
D17*
|
||||
X156775000Y-92600000D03*
|
||||
X157425000Y-92600000D03*
|
||||
X158075000Y-92600000D03*
|
||||
X158725000Y-92600000D03*
|
||||
X159375000Y-92600000D03*
|
||||
X160025000Y-92600000D03*
|
||||
X160675000Y-92600000D03*
|
||||
X161325000Y-92600000D03*
|
||||
X161975000Y-92600000D03*
|
||||
X162625000Y-92600000D03*
|
||||
X163275000Y-92600000D03*
|
||||
X163925000Y-92600000D03*
|
||||
X164575000Y-92600000D03*
|
||||
X165225000Y-92600000D03*
|
||||
X165225000Y-85400000D03*
|
||||
X164575000Y-85400000D03*
|
||||
X163925000Y-85400000D03*
|
||||
X163275000Y-85400000D03*
|
||||
X162625000Y-85400000D03*
|
||||
X161975000Y-85400000D03*
|
||||
X161325000Y-85400000D03*
|
||||
X160675000Y-85400000D03*
|
||||
X160025000Y-85400000D03*
|
||||
X159375000Y-85400000D03*
|
||||
X158725000Y-85400000D03*
|
||||
X158075000Y-85400000D03*
|
||||
X157425000Y-85400000D03*
|
||||
X156775000Y-85400000D03*
|
||||
D18*
|
||||
X175000000Y-87150000D03*
|
||||
X175000000Y-88100000D03*
|
||||
X175000000Y-89050000D03*
|
||||
X177200000Y-89050000D03*
|
||||
X177200000Y-87150000D03*
|
||||
D19*
|
||||
X184000000Y-86460000D03*
|
||||
D20*
|
||||
X184000000Y-89000000D03*
|
||||
X184000000Y-91540000D03*
|
||||
D13*
|
||||
X174900000Y-94501960D03*
|
||||
X174900000Y-96600000D03*
|
||||
D11*
|
||||
X159000000Y-94600000D03*
|
||||
X160500000Y-94600000D03*
|
||||
X162350000Y-81100000D03*
|
||||
X160850000Y-81100000D03*
|
||||
D21*
|
||||
X171150000Y-88600000D03*
|
||||
X171150000Y-90100000D03*
|
||||
X169550000Y-88600000D03*
|
||||
X169550000Y-90100000D03*
|
||||
X168800000Y-91300000D03*
|
||||
X168800000Y-92800000D03*
|
||||
X170800000Y-91300000D03*
|
||||
X170800000Y-92800000D03*
|
||||
X172800000Y-91300000D03*
|
||||
X172800000Y-92800000D03*
|
||||
X174900000Y-91300000D03*
|
||||
X174900000Y-92800000D03*
|
||||
X176600000Y-91300000D03*
|
||||
X176600000Y-92800000D03*
|
||||
D22*
|
||||
X152900000Y-88350000D03*
|
||||
X152900000Y-90350000D03*
|
||||
X152900000Y-92850000D03*
|
||||
X152900000Y-85850000D03*
|
||||
D23*
|
||||
X150800000Y-83500000D03*
|
||||
X150800000Y-95200000D03*
|
||||
D24*
|
||||
X150800000Y-87100000D03*
|
||||
X150800000Y-91600000D03*
|
||||
M02*
|
||||
12
samples/Gerber Image/FelinaePurr-F.Paste.gtp
Normal file
12
samples/Gerber Image/FelinaePurr-F.Paste.gtp
Normal file
@@ -0,0 +1,12 @@
|
||||
G04 #@! TF.FileFunction,Paste,Top*
|
||||
%FSLAX46Y46*%
|
||||
G04 Gerber Fmt 4.6, Leading zero omitted, Abs format (unit mm)*
|
||||
G04 Created by KiCad (PCBNEW (2016-07-14 BZR 6980)-product) date Sunday, 23 April 2017 'PMt' 23:49:01*
|
||||
%MOMM*%
|
||||
%LPD*%
|
||||
G01*
|
||||
G04 APERTURE LIST*
|
||||
%ADD10C,0.150000*%
|
||||
G04 APERTURE END LIST*
|
||||
D10*
|
||||
M02*
|
||||
255
samples/Gerber Image/FelinaePurr-F.SilkS.gto
Normal file
255
samples/Gerber Image/FelinaePurr-F.SilkS.gto
Normal file
@@ -0,0 +1,255 @@
|
||||
G04 #@! TF.FileFunction,Legend,Top*
|
||||
%FSLAX46Y46*%
|
||||
G04 Gerber Fmt 4.6, Leading zero omitted, Abs format (unit mm)*
|
||||
G04 Created by KiCad (PCBNEW (2016-07-14 BZR 6980)-product) date Sunday, 23 April 2017 'PMt' 23:49:01*
|
||||
%MOMM*%
|
||||
%LPD*%
|
||||
G01*
|
||||
G04 APERTURE LIST*
|
||||
%ADD10C,0.150000*%
|
||||
%ADD11C,0.200000*%
|
||||
%ADD12C,0.500000*%
|
||||
%ADD13C,0.175000*%
|
||||
%ADD14C,0.120000*%
|
||||
%ADD15R,0.800000X0.750000*%
|
||||
%ADD16R,0.750000X0.800000*%
|
||||
%ADD17R,1.198880X1.198880*%
|
||||
%ADD18R,1.727200X2.032000*%
|
||||
%ADD19O,1.727200X2.032000*%
|
||||
%ADD20R,0.500000X0.900000*%
|
||||
%ADD21R,0.450000X1.750000*%
|
||||
%ADD22R,1.060000X0.650000*%
|
||||
%ADD23R,2.032000X1.727200*%
|
||||
%ADD24O,2.032000X1.727200*%
|
||||
%ADD25R,0.900000X0.500000*%
|
||||
%ADD26C,1.300000*%
|
||||
%ADD27C,2.800000*%
|
||||
%ADD28C,1.200000*%
|
||||
G04 APERTURE END LIST*
|
||||
D10*
|
||||
D11*
|
||||
X181000000Y-96250000D02*
|
||||
X181000000Y-96750000D01*
|
||||
X180750000Y-96500000D02*
|
||||
X181250000Y-96500000D01*
|
||||
X180750000Y-97250000D02*
|
||||
X181250000Y-97250000D01*
|
||||
D12*
|
||||
X156000000Y-92800000D02*
|
||||
G75*
|
||||
G03X156000000Y-92800000I-200000J0D01*
|
||||
G01*
|
||||
D13*
|
||||
X174800000Y-84116666D02*
|
||||
X174800000Y-83416666D01*
|
||||
X174966666Y-83416666D01*
|
||||
X175066666Y-83450000D01*
|
||||
X175133333Y-83516666D01*
|
||||
X175166666Y-83583333D01*
|
||||
X175200000Y-83716666D01*
|
||||
X175200000Y-83816666D01*
|
||||
X175166666Y-83950000D01*
|
||||
X175133333Y-84016666D01*
|
||||
X175066666Y-84083333D01*
|
||||
X174966666Y-84116666D01*
|
||||
X174800000Y-84116666D01*
|
||||
X175500000Y-83750000D02*
|
||||
X175733333Y-83750000D01*
|
||||
X157483333Y-97316666D02*
|
||||
X161783333Y-96816666D01*
|
||||
X162450000Y-97116666D02*
|
||||
X162783333Y-97116666D01*
|
||||
X162383333Y-97316666D02*
|
||||
X162616666Y-96616666D01*
|
||||
X162850000Y-97316666D01*
|
||||
D10*
|
||||
X164950000Y-83300000D02*
|
||||
X164250000Y-83300000D01*
|
||||
X164250000Y-82100000D02*
|
||||
X164950000Y-82100000D01*
|
||||
X161950000Y-83300000D02*
|
||||
X161250000Y-83300000D01*
|
||||
X161250000Y-82100000D02*
|
||||
X161950000Y-82100000D01*
|
||||
X173300000Y-87750000D02*
|
||||
X173300000Y-88450000D01*
|
||||
X172100000Y-88450000D02*
|
||||
X172100000Y-87750000D01*
|
||||
X180700000Y-91200000D02*
|
||||
X180000000Y-91200000D01*
|
||||
X180000000Y-90000000D02*
|
||||
X180700000Y-90000000D01*
|
||||
X169550000Y-97149020D02*
|
||||
X169550000Y-94449020D01*
|
||||
X168050000Y-97149020D02*
|
||||
X168050000Y-94449020D01*
|
||||
X168950000Y-95649020D02*
|
||||
X168700000Y-95649020D01*
|
||||
X168700000Y-95649020D02*
|
||||
X168850000Y-95799020D01*
|
||||
X168450000Y-95899020D02*
|
||||
X169150000Y-95899020D01*
|
||||
X168800000Y-95549020D02*
|
||||
X168800000Y-95199020D01*
|
||||
X168800000Y-95899020D02*
|
||||
X168450000Y-95549020D01*
|
||||
X168450000Y-95549020D02*
|
||||
X169150000Y-95549020D01*
|
||||
X169150000Y-95549020D02*
|
||||
X168800000Y-95899020D01*
|
||||
X171550000Y-97149020D02*
|
||||
X171550000Y-94449020D01*
|
||||
X170050000Y-97149020D02*
|
||||
X170050000Y-94449020D01*
|
||||
X170950000Y-95649020D02*
|
||||
X170700000Y-95649020D01*
|
||||
X170700000Y-95649020D02*
|
||||
X170850000Y-95799020D01*
|
||||
X170450000Y-95899020D02*
|
||||
X171150000Y-95899020D01*
|
||||
X170800000Y-95549020D02*
|
||||
X170800000Y-95199020D01*
|
||||
X175900000Y-86400000D02*
|
||||
G75*
|
||||
G03X175900000Y-86400000I-100000J0D01*
|
||||
G01*
|
||||
X176350000Y-86650000D02*
|
||||
X175850000Y-86650000D01*
|
||||
X176350000Y-89550000D02*
|
||||
X176350000Y-86650000D01*
|
||||
X175850000Y-89550000D02*
|
||||
X176350000Y-89550000D01*
|
||||
X175850000Y-86650000D02*
|
||||
X175850000Y-89550000D01*
|
||||
X182730000Y-87730000D02*
|
||||
X182730000Y-92810000D01*
|
||||
X182730000Y-92810000D02*
|
||||
X185270000Y-92810000D01*
|
||||
X185270000Y-92810000D02*
|
||||
X185270000Y-87730000D01*
|
||||
X185550000Y-84910000D02*
|
||||
X185550000Y-86460000D01*
|
||||
X185270000Y-87730000D02*
|
||||
X182730000Y-87730000D01*
|
||||
X175580000Y-92550000D01*
|
||||
X175920000Y-92550000D02*
|
||||
X175920000Y-91550000D01*
|
||||
X177280000Y-91550000D02*
|
||||
X177280000Y-92550000D01*
|
||||
D10*
|
||||
X148000000Y-95350000D02*
|
||||
X148000000Y-83350000D01*
|
||||
X134100000Y-83350000D02*
|
||||
X152800000Y-83350000D01*
|
||||
X134100000Y-95350000D02*
|
||||
X134100000Y-83350000D01*
|
||||
X152900000Y-95350000D02*
|
||||
X141352380Y-88850000D02*
|
||||
X140352380Y-88850000D01*
|
||||
X140495238Y-88945238D01*
|
||||
X140590476Y-89040476D01*
|
||||
X140638095Y-89135714D01*
|
||||
%LPC*%
|
||||
D15*
|
||||
X165350000Y-82700000D03*
|
||||
X163850000Y-82700000D03*
|
||||
X162350000Y-82700000D03*
|
||||
X160850000Y-82700000D03*
|
||||
D16*
|
||||
X172700000Y-87350000D03*
|
||||
X172700000Y-88850000D03*
|
||||
D15*
|
||||
X181100000Y-90600000D03*
|
||||
X179600000Y-90600000D03*
|
||||
D17*
|
||||
X168800000Y-94500000D03*
|
||||
X168800000Y-96598040D03*
|
||||
X170800000Y-94500000D03*
|
||||
X170800000Y-96598040D03*
|
||||
X172800000Y-94500000D03*
|
||||
X172800000Y-96598040D03*
|
||||
D18*
|
||||
X175640000Y-81600000D03*
|
||||
D19*
|
||||
X173100000Y-81600000D03*
|
||||
X170560000Y-81600000D03*
|
||||
D20*
|
||||
X181100000Y-89000000D03*
|
||||
X179600000Y-89000000D03*
|
||||
X179600000Y-87300000D03*
|
||||
X181100000Y-87300000D03*
|
||||
D21*
|
||||
X156775000Y-92600000D03*
|
||||
X157425000Y-92600000D03*
|
||||
X158075000Y-92600000D03*
|
||||
X158725000Y-92600000D03*
|
||||
X159375000Y-92600000D03*
|
||||
X160025000Y-92600000D03*
|
||||
X160675000Y-92600000D03*
|
||||
X161325000Y-92600000D03*
|
||||
X161975000Y-92600000D03*
|
||||
X162625000Y-92600000D03*
|
||||
X163275000Y-92600000D03*
|
||||
X163925000Y-92600000D03*
|
||||
X164575000Y-92600000D03*
|
||||
X165225000Y-92600000D03*
|
||||
X165225000Y-85400000D03*
|
||||
X164575000Y-85400000D03*
|
||||
X163925000Y-85400000D03*
|
||||
X163275000Y-85400000D03*
|
||||
X162625000Y-85400000D03*
|
||||
X161975000Y-85400000D03*
|
||||
X161325000Y-85400000D03*
|
||||
X160675000Y-85400000D03*
|
||||
X160025000Y-85400000D03*
|
||||
X159375000Y-85400000D03*
|
||||
X158725000Y-85400000D03*
|
||||
X158075000Y-85400000D03*
|
||||
X157425000Y-85400000D03*
|
||||
X156775000Y-85400000D03*
|
||||
D22*
|
||||
X175000000Y-87150000D03*
|
||||
X175000000Y-88100000D03*
|
||||
X175000000Y-89050000D03*
|
||||
X177200000Y-89050000D03*
|
||||
X177200000Y-87150000D03*
|
||||
D23*
|
||||
X184000000Y-86460000D03*
|
||||
D24*
|
||||
X184000000Y-89000000D03*
|
||||
X184000000Y-91540000D03*
|
||||
D17*
|
||||
X174900000Y-94501960D03*
|
||||
X174900000Y-96600000D03*
|
||||
D15*
|
||||
X159000000Y-94600000D03*
|
||||
X160500000Y-94600000D03*
|
||||
X162350000Y-81100000D03*
|
||||
X160850000Y-81100000D03*
|
||||
D25*
|
||||
X171150000Y-88600000D03*
|
||||
X171150000Y-90100000D03*
|
||||
X169550000Y-88600000D03*
|
||||
X169550000Y-90100000D03*
|
||||
X168800000Y-91300000D03*
|
||||
X168800000Y-92800000D03*
|
||||
X170800000Y-91300000D03*
|
||||
X170800000Y-92800000D03*
|
||||
X172800000Y-91300000D03*
|
||||
X172800000Y-92800000D03*
|
||||
X174900000Y-91300000D03*
|
||||
X174900000Y-92800000D03*
|
||||
X176600000Y-91300000D03*
|
||||
X176600000Y-92800000D03*
|
||||
D26*
|
||||
X152900000Y-88350000D03*
|
||||
X152900000Y-90350000D03*
|
||||
X152900000Y-92850000D03*
|
||||
X152900000Y-85850000D03*
|
||||
D27*
|
||||
X150800000Y-83500000D03*
|
||||
X150800000Y-95200000D03*
|
||||
D28*
|
||||
X150800000Y-87100000D03*
|
||||
X150800000Y-91600000D03*
|
||||
M02*
|
||||
60
samples/Gerber Image/GOLMain_RevA-B.Paste.gbp
Normal file
60
samples/Gerber Image/GOLMain_RevA-B.Paste.gbp
Normal file
@@ -0,0 +1,60 @@
|
||||
G04 #@! TF.FileFunction,Paste,Bot*
|
||||
%FSLAX46Y46*%
|
||||
G04 Gerber Fmt 4.6, Leading zero omitted, Abs format (unit mm)*
|
||||
G04 Created by KiCad (PCBNEW 4.0.4-stable) date 03/23/17 03:26:40*
|
||||
%MOMM*%
|
||||
%LPD*%
|
||||
G01*
|
||||
G04 APERTURE LIST*
|
||||
%ADD10C,0.100000*%
|
||||
%ADD11R,1.100000X2.400000*%
|
||||
%ADD12O,1.100000X2.400000*%
|
||||
%ADD13R,2.000000X2.032000*%
|
||||
%ADD14R,1.727200X2.032000*%
|
||||
G04 APERTURE END LIST*
|
||||
D10*
|
||||
D11*
|
||||
X153000000Y-135000000D03*
|
||||
D12*
|
||||
X151000000Y-135000000D03*
|
||||
X149000000Y-135000000D03*
|
||||
X147000000Y-135000000D03*
|
||||
X145000000Y-135000000D03*
|
||||
X143000000Y-135000000D03*
|
||||
X141000000Y-135000000D03*
|
||||
X139000000Y-135000000D03*
|
||||
X139000000Y-119000000D03*
|
||||
X141000000Y-119000000D03*
|
||||
X143000000Y-119000000D03*
|
||||
X145000000Y-119000000D03*
|
||||
X147000000Y-119000000D03*
|
||||
X149000000Y-119000000D03*
|
||||
X151000000Y-119000000D03*
|
||||
X153000000Y-119000000D03*
|
||||
D13*
|
||||
X94500000Y-125500000D03*
|
||||
X97040000Y-125500000D03*
|
||||
X99580000Y-125500000D03*
|
||||
X94500000Y-128500000D03*
|
||||
X97040000Y-128500000D03*
|
||||
X99580000Y-128500000D03*
|
||||
X94500000Y-131500000D03*
|
||||
X97040000Y-131500000D03*
|
||||
X99580000Y-131500000D03*
|
||||
X94500000Y-134500000D03*
|
||||
X97040000Y-134500000D03*
|
||||
X99580000Y-134500000D03*
|
||||
X97040000Y-137500000D03*
|
||||
X99580000Y-137500000D03*
|
||||
D14*
|
||||
X94500000Y-140500000D03*
|
||||
D13*
|
||||
X97040000Y-140500000D03*
|
||||
X99580000Y-140500000D03*
|
||||
X94500000Y-143500000D03*
|
||||
X97040000Y-143500000D03*
|
||||
X99580000Y-143500000D03*
|
||||
X94500000Y-146500000D03*
|
||||
X97040000Y-146500000D03*
|
||||
X99580000Y-146500000D03*
|
||||
M02*
|
||||
26
samples/Gerber Image/nonaprs_contour.gko
Normal file
26
samples/Gerber Image/nonaprs_contour.gko
Normal file
@@ -0,0 +1,26 @@
|
||||
G04 MADE WITH FRITZING*
|
||||
G04 WWW.FRITZING.ORG*
|
||||
G04 DOUBLE SIDED*
|
||||
G04 HOLES PLATED*
|
||||
G04 CONTOUR ON CENTER OF CONTOUR VECTOR*
|
||||
%ASAXBY*%
|
||||
%FSLAX23Y23*%
|
||||
%MOIN*%
|
||||
%OFA0B0*%
|
||||
%SFA1.0B1.0*%
|
||||
%ADD10R,1.267940X2.408830*%
|
||||
%ADD11C,0.008000*%
|
||||
%ADD10C,0.008*%
|
||||
%LNCONTOUR*%
|
||||
G90*
|
||||
G70*
|
||||
G54D10*
|
||||
G54D11*
|
||||
X4Y2405D02*
|
||||
X1264Y2405D01*
|
||||
X1264Y4D01*
|
||||
X4Y4D01*
|
||||
X4Y2405D01*
|
||||
D02*
|
||||
G04 End of contour*
|
||||
M02*
|
||||
1277
samples/Gerber Image/simonShield-B.Cu.gbr
Normal file
1277
samples/Gerber Image/simonShield-B.Cu.gbr
Normal file
File diff suppressed because it is too large
Load Diff
210
samples/Gerber Image/simonShield-B.Mask.gbr
Normal file
210
samples/Gerber Image/simonShield-B.Mask.gbr
Normal file
@@ -0,0 +1,210 @@
|
||||
G04 #@! TF.FileFunction,Soldermask,Bot*
|
||||
%FSLAX46Y46*%
|
||||
G04 Gerber Fmt 4.6, Leading zero omitted, Abs format (unit mm)*
|
||||
G04 Created by KiCad (PCBNEW 4.0.6-e0-6349~53~ubuntu16.04.1) date Sat Jul 1 03:26:18 2017*
|
||||
%MOMM*%
|
||||
%LPD*%
|
||||
G01*
|
||||
G04 APERTURE LIST*
|
||||
%ADD10C,0.100000*%
|
||||
%ADD11C,0.150000*%
|
||||
%ADD12C,2.000000*%
|
||||
%ADD13O,2.000000X2.000000*%
|
||||
%ADD14R,2.400000X1.924000*%
|
||||
%ADD15O,2.400000X1.924000*%
|
||||
%ADD16R,1.700000X1.700000*%
|
||||
%ADD17C,1.700000*%
|
||||
%ADD18C,2.398980*%
|
||||
%ADD19R,2.300000X2.400000*%
|
||||
%ADD20C,2.300000*%
|
||||
%ADD21R,2.127200X2.127200*%
|
||||
%ADD22O,2.127200X2.127200*%
|
||||
%ADD23C,1.400760*%
|
||||
%ADD24C,1.797000*%
|
||||
%ADD25C,2.000200*%
|
||||
G04 APERTURE END LIST*
|
||||
D10*
|
||||
D11*
|
||||
X196250000Y-118000000D02*
|
||||
X113000000Y-118000000D01*
|
||||
X196250000Y-52750000D02*
|
||||
X196250000Y-118000000D01*
|
||||
X113000000Y-52750000D02*
|
||||
X196250000Y-52750000D01*
|
||||
X113000000Y-118000000D02*
|
||||
X113000000Y-52750000D01*
|
||||
D12*
|
||||
X145400000Y-68800000D03*
|
||||
D13*
|
||||
X145400000Y-58640000D03*
|
||||
D14*
|
||||
X189230000Y-61468000D03*
|
||||
D15*
|
||||
X191770000Y-61468000D03*
|
||||
X189230000Y-74168000D03*
|
||||
X189230000Y-109728000D03*
|
||||
X191770000Y-109728000D03*
|
||||
X191770000Y-97028000D03*
|
||||
D14*
|
||||
X118110000Y-61468000D03*
|
||||
D15*
|
||||
X120650000Y-61468000D03*
|
||||
X118110000Y-64008000D03*
|
||||
X120650000Y-64008000D03*
|
||||
X118110000Y-66548000D03*
|
||||
X120650000Y-66548000D03*
|
||||
X118110000Y-69088000D03*
|
||||
X120650000Y-69088000D03*
|
||||
X118110000Y-71628000D03*
|
||||
X120650000Y-71628000D03*
|
||||
X118110000Y-74168000D03*
|
||||
X120650000Y-74168000D03*
|
||||
X118110000Y-76708000D03*
|
||||
X120650000Y-76708000D03*
|
||||
X118110000Y-79248000D03*
|
||||
X120650000Y-79248000D03*
|
||||
X118110000Y-81788000D03*
|
||||
X120650000Y-81788000D03*
|
||||
X118110000Y-84328000D03*
|
||||
X120650000Y-84328000D03*
|
||||
X118110000Y-86868000D03*
|
||||
X120650000Y-86868000D03*
|
||||
X118110000Y-89408000D03*
|
||||
X120650000Y-89408000D03*
|
||||
X118110000Y-91948000D03*
|
||||
X120650000Y-91948000D03*
|
||||
X118110000Y-94488000D03*
|
||||
X120650000Y-94488000D03*
|
||||
X118110000Y-97028000D03*
|
||||
X120650000Y-97028000D03*
|
||||
X118110000Y-99568000D03*
|
||||
X120650000Y-99568000D03*
|
||||
X118110000Y-102108000D03*
|
||||
X120650000Y-102108000D03*
|
||||
X118110000Y-104648000D03*
|
||||
X120650000Y-104648000D03*
|
||||
X118110000Y-107188000D03*
|
||||
X120650000Y-107188000D03*
|
||||
X118110000Y-109728000D03*
|
||||
X120650000Y-109728000D03*
|
||||
D16*
|
||||
X135255000Y-64008000D03*
|
||||
D17*
|
||||
X135255000Y-61508000D03*
|
||||
D18*
|
||||
X164465000Y-85471000D03*
|
||||
X164465000Y-77851000D03*
|
||||
D19*
|
||||
X136017000Y-72644000D03*
|
||||
D20*
|
||||
X133477000Y-72644000D03*
|
||||
D19*
|
||||
X173863000Y-72644000D03*
|
||||
D20*
|
||||
X176403000Y-72644000D03*
|
||||
D19*
|
||||
X136017000Y-96139000D03*
|
||||
D20*
|
||||
X133477000Y-96139000D03*
|
||||
D19*
|
||||
X173863000Y-96012000D03*
|
||||
D20*
|
||||
X176403000Y-96012000D03*
|
||||
D21*
|
||||
X127007800Y-61542700D03*
|
||||
D22*
|
||||
X129547800Y-61542700D03*
|
||||
X127007800Y-64082700D03*
|
||||
X129547800Y-64082700D03*
|
||||
D23*
|
||||
X166243000Y-67056000D03*
|
||||
X164973000Y-68326000D03*
|
||||
X164973000Y-65786000D03*
|
||||
X128143000Y-71374000D03*
|
||||
X129413000Y-72644000D03*
|
||||
X126873000Y-72644000D03*
|
||||
X181737000Y-73914000D03*
|
||||
X180467000Y-72644000D03*
|
||||
X183007000Y-72644000D03*
|
||||
X128143000Y-94742000D03*
|
||||
X129413000Y-96012000D03*
|
||||
X126873000Y-96012000D03*
|
||||
X181737000Y-97282000D03*
|
||||
X180467000Y-96012000D03*
|
||||
X183007000Y-96012000D03*
|
||||
D18*
|
||||
X134239000Y-85344000D03*
|
||||
X134239000Y-77724000D03*
|
||||
X145415000Y-85344000D03*
|
||||
X145415000Y-77724000D03*
|
||||
X175641000Y-85217000D03*
|
||||
X175641000Y-77597000D03*
|
||||
X145415000Y-108966000D03*
|
||||
X145415000Y-101346000D03*
|
||||
X134239000Y-108458000D03*
|
||||
X134239000Y-100838000D03*
|
||||
X175641000Y-108585000D03*
|
||||
X175641000Y-100965000D03*
|
||||
X164465000Y-108839000D03*
|
||||
X164465000Y-101219000D03*
|
||||
X169164000Y-62611000D03*
|
||||
X161544000Y-62611000D03*
|
||||
X169164000Y-59563000D03*
|
||||
X161544000Y-59563000D03*
|
||||
X129921000Y-85217000D03*
|
||||
X129921000Y-77597000D03*
|
||||
X126365000Y-85217000D03*
|
||||
X126365000Y-77597000D03*
|
||||
X180086000Y-85217000D03*
|
||||
X180086000Y-77597000D03*
|
||||
X183515000Y-85217000D03*
|
||||
X183515000Y-77597000D03*
|
||||
X129921000Y-108458000D03*
|
||||
X129921000Y-100838000D03*
|
||||
X126365000Y-108458000D03*
|
||||
X126365000Y-100838000D03*
|
||||
X179959000Y-108585000D03*
|
||||
X179959000Y-100965000D03*
|
||||
X183515000Y-108585000D03*
|
||||
X183515000Y-100965000D03*
|
||||
D12*
|
||||
X155000000Y-99000000D03*
|
||||
D13*
|
||||
X155000000Y-88840000D03*
|
||||
D24*
|
||||
X137287000Y-77724000D03*
|
||||
X142367000Y-77724000D03*
|
||||
X137287000Y-85344000D03*
|
||||
X142367000Y-85344000D03*
|
||||
X148463000Y-77724000D03*
|
||||
X153543000Y-77724000D03*
|
||||
X148463000Y-85344000D03*
|
||||
X153543000Y-85344000D03*
|
||||
X172593000Y-85344000D03*
|
||||
X167513000Y-85344000D03*
|
||||
X172593000Y-77724000D03*
|
||||
X167513000Y-77724000D03*
|
||||
X161417000Y-85344000D03*
|
||||
X156337000Y-85344000D03*
|
||||
X161417000Y-77724000D03*
|
||||
X156337000Y-77724000D03*
|
||||
X148463000Y-101219000D03*
|
||||
X153543000Y-101219000D03*
|
||||
X148463000Y-108839000D03*
|
||||
X153543000Y-108839000D03*
|
||||
X137287000Y-101219000D03*
|
||||
X142367000Y-101219000D03*
|
||||
X137287000Y-108839000D03*
|
||||
X142367000Y-108839000D03*
|
||||
X172593000Y-108712000D03*
|
||||
X167513000Y-108712000D03*
|
||||
X172593000Y-101092000D03*
|
||||
X167513000Y-101092000D03*
|
||||
X161417000Y-108712000D03*
|
||||
X156337000Y-108712000D03*
|
||||
X161417000Y-101092000D03*
|
||||
X156337000Y-101092000D03*
|
||||
D25*
|
||||
X157178971Y-64124429D03*
|
||||
X150828971Y-64124429D03*
|
||||
M02*
|
||||
22
samples/Gerber Image/simonShield-Edge.Cuts.gbr
Normal file
22
samples/Gerber Image/simonShield-Edge.Cuts.gbr
Normal file
@@ -0,0 +1,22 @@
|
||||
G04 #@! TF.FileFunction,Profile,NP*
|
||||
%FSLAX46Y46*%
|
||||
G04 Gerber Fmt 4.6, Leading zero omitted, Abs format (unit mm)*
|
||||
G04 Created by KiCad (PCBNEW 4.0.6-e0-6349~53~ubuntu16.04.1) date Sat Jul 1 03:26:18 2017*
|
||||
%MOMM*%
|
||||
%LPD*%
|
||||
G01*
|
||||
G04 APERTURE LIST*
|
||||
%ADD10C,0.100000*%
|
||||
%ADD11C,0.150000*%
|
||||
G04 APERTURE END LIST*
|
||||
D10*
|
||||
D11*
|
||||
X196250000Y-118000000D02*
|
||||
X113000000Y-118000000D01*
|
||||
X196250000Y-52750000D02*
|
||||
X196250000Y-118000000D01*
|
||||
X113000000Y-52750000D02*
|
||||
X196250000Y-52750000D01*
|
||||
X113000000Y-118000000D02*
|
||||
X113000000Y-52750000D01*
|
||||
M02*
|
||||
287
samples/Gerber Image/simonShield-F.Cu.gbr
Normal file
287
samples/Gerber Image/simonShield-F.Cu.gbr
Normal file
@@ -0,0 +1,287 @@
|
||||
G04 #@! TF.FileFunction,Copper,L1,Top,Signal*
|
||||
%FSLAX46Y46*%
|
||||
G04 Gerber Fmt 4.6, Leading zero omitted, Abs format (unit mm)*
|
||||
G04 Created by KiCad (PCBNEW 4.0.6-e0-6349~53~ubuntu16.04.1) date Sat Jul 1 03:26:18 2017*
|
||||
%MOMM*%
|
||||
%LPD*%
|
||||
G01*
|
||||
G04 APERTURE LIST*
|
||||
%ADD10C,0.100000*%
|
||||
%ADD11C,0.150000*%
|
||||
%ADD12C,1.600000*%
|
||||
%ADD13O,1.600000X1.600000*%
|
||||
%ADD14R,2.000000X1.524000*%
|
||||
%ADD15O,2.000000X1.524000*%
|
||||
%ADD16R,1.300000X1.300000*%
|
||||
%ADD17C,1.300000*%
|
||||
%ADD18C,1.998980*%
|
||||
%ADD19R,1.900000X2.000000*%
|
||||
%ADD20C,1.900000*%
|
||||
%ADD21C,1.000000*%
|
||||
%ADD22R,1.727200X1.727200*%
|
||||
%ADD23O,1.727200X1.727200*%
|
||||
%ADD24C,1.000760*%
|
||||
%ADD25C,1.397000*%
|
||||
%ADD26C,1.600200*%
|
||||
%ADD27C,1.270000*%
|
||||
%ADD28C,0.304800*%
|
||||
G04 APERTURE END LIST*
|
||||
D10*
|
||||
D11*
|
||||
X196250000Y-118000000D02*
|
||||
X113000000Y-118000000D01*
|
||||
X196250000Y-52750000D02*
|
||||
X196250000Y-118000000D01*
|
||||
X113000000Y-52750000D02*
|
||||
X196250000Y-52750000D01*
|
||||
X113000000Y-118000000D02*
|
||||
X113000000Y-52750000D01*
|
||||
D12*
|
||||
X145400000Y-68800000D03*
|
||||
D13*
|
||||
X145400000Y-58640000D03*
|
||||
D14*
|
||||
X189230000Y-61468000D03*
|
||||
D15*
|
||||
X191770000Y-61468000D03*
|
||||
X189230000Y-74168000D03*
|
||||
X191770000Y-64008000D03*
|
||||
X189230000Y-76708000D03*
|
||||
X191770000Y-66548000D03*
|
||||
X189230000Y-79248000D03*
|
||||
X191770000Y-69088000D03*
|
||||
X189230000Y-81788000D03*
|
||||
X191770000Y-71628000D03*
|
||||
X189230000Y-84328000D03*
|
||||
X191770000Y-74168000D03*
|
||||
X189230000Y-86868000D03*
|
||||
X191770000Y-76708000D03*
|
||||
X189230000Y-89408000D03*
|
||||
X191770000Y-79248000D03*
|
||||
X189230000Y-91948000D03*
|
||||
X191770000Y-81788000D03*
|
||||
X189230000Y-94488000D03*
|
||||
X191770000Y-84328000D03*
|
||||
X189230000Y-97028000D03*
|
||||
X191770000Y-86868000D03*
|
||||
X189230000Y-99568000D03*
|
||||
X191770000Y-89408000D03*
|
||||
X191770000Y-91948000D03*
|
||||
X189230000Y-102108000D03*
|
||||
X191770000Y-94488000D03*
|
||||
X191770000Y-99568000D03*
|
||||
X191770000Y-102108000D03*
|
||||
X191770000Y-104648000D03*
|
||||
X191770000Y-107188000D03*
|
||||
X189230000Y-104648000D03*
|
||||
X189230000Y-107188000D03*
|
||||
X189230000Y-64008000D03*
|
||||
X189230000Y-66548000D03*
|
||||
X189230000Y-69088000D03*
|
||||
X189230000Y-71628000D03*
|
||||
X189230000Y-109728000D03*
|
||||
X191770000Y-109728000D03*
|
||||
X191770000Y-97028000D03*
|
||||
D14*
|
||||
X118110000Y-61468000D03*
|
||||
D15*
|
||||
X120650000Y-61468000D03*
|
||||
X118110000Y-64008000D03*
|
||||
X120650000Y-64008000D03*
|
||||
X118110000Y-66548000D03*
|
||||
X120650000Y-66548000D03*
|
||||
X118110000Y-69088000D03*
|
||||
X120650000Y-69088000D03*
|
||||
X118110000Y-71628000D03*
|
||||
X120650000Y-71628000D03*
|
||||
X118110000Y-74168000D03*
|
||||
X120650000Y-74168000D03*
|
||||
X118110000Y-76708000D03*
|
||||
X120650000Y-76708000D03*
|
||||
X118110000Y-79248000D03*
|
||||
X120650000Y-79248000D03*
|
||||
X118110000Y-81788000D03*
|
||||
X120650000Y-81788000D03*
|
||||
X118110000Y-84328000D03*
|
||||
X120650000Y-84328000D03*
|
||||
X118110000Y-86868000D03*
|
||||
X120650000Y-86868000D03*
|
||||
X118110000Y-89408000D03*
|
||||
X120650000Y-89408000D03*
|
||||
X118110000Y-91948000D03*
|
||||
X120650000Y-91948000D03*
|
||||
X118110000Y-94488000D03*
|
||||
X120650000Y-94488000D03*
|
||||
X118110000Y-97028000D03*
|
||||
X120650000Y-97028000D03*
|
||||
X118110000Y-99568000D03*
|
||||
X120650000Y-99568000D03*
|
||||
X118110000Y-102108000D03*
|
||||
X120650000Y-102108000D03*
|
||||
X118110000Y-104648000D03*
|
||||
X120650000Y-104648000D03*
|
||||
X118110000Y-107188000D03*
|
||||
X120650000Y-107188000D03*
|
||||
X118110000Y-109728000D03*
|
||||
X120650000Y-109728000D03*
|
||||
D16*
|
||||
X135255000Y-64008000D03*
|
||||
D17*
|
||||
X135255000Y-61508000D03*
|
||||
D18*
|
||||
X164465000Y-85471000D03*
|
||||
X164465000Y-77851000D03*
|
||||
D19*
|
||||
X136017000Y-72644000D03*
|
||||
D20*
|
||||
X133477000Y-72644000D03*
|
||||
D19*
|
||||
X173863000Y-72644000D03*
|
||||
D20*
|
||||
X176403000Y-72644000D03*
|
||||
D19*
|
||||
X136017000Y-96139000D03*
|
||||
D20*
|
||||
X133477000Y-96139000D03*
|
||||
D19*
|
||||
X173863000Y-96012000D03*
|
||||
D20*
|
||||
X176403000Y-96012000D03*
|
||||
D21*
|
||||
X125250000Y-112250000D03*
|
||||
X160500000Y-70500000D03*
|
||||
X167250000Y-92250000D03*
|
||||
D22*
|
||||
X127007800Y-61542700D03*
|
||||
D23*
|
||||
X129547800Y-61542700D03*
|
||||
X127007800Y-64082700D03*
|
||||
X129547800Y-64082700D03*
|
||||
D24*
|
||||
X166243000Y-67056000D03*
|
||||
X164973000Y-68326000D03*
|
||||
X164973000Y-65786000D03*
|
||||
X128143000Y-71374000D03*
|
||||
X129413000Y-72644000D03*
|
||||
X126873000Y-72644000D03*
|
||||
X181737000Y-73914000D03*
|
||||
X180467000Y-72644000D03*
|
||||
X183007000Y-72644000D03*
|
||||
X128143000Y-94742000D03*
|
||||
X129413000Y-96012000D03*
|
||||
X126873000Y-96012000D03*
|
||||
X181737000Y-97282000D03*
|
||||
X180467000Y-96012000D03*
|
||||
X183007000Y-96012000D03*
|
||||
D18*
|
||||
X134239000Y-85344000D03*
|
||||
X134239000Y-77724000D03*
|
||||
X145415000Y-85344000D03*
|
||||
X145415000Y-77724000D03*
|
||||
X175641000Y-85217000D03*
|
||||
X175641000Y-77597000D03*
|
||||
X145415000Y-108966000D03*
|
||||
X145415000Y-101346000D03*
|
||||
X134239000Y-108458000D03*
|
||||
X134239000Y-100838000D03*
|
||||
X175641000Y-108585000D03*
|
||||
X175641000Y-100965000D03*
|
||||
X164465000Y-108839000D03*
|
||||
X164465000Y-101219000D03*
|
||||
X169164000Y-62611000D03*
|
||||
X161544000Y-62611000D03*
|
||||
X169164000Y-59563000D03*
|
||||
X161544000Y-59563000D03*
|
||||
X129921000Y-85217000D03*
|
||||
X129921000Y-77597000D03*
|
||||
X126365000Y-85217000D03*
|
||||
X126365000Y-77597000D03*
|
||||
X180086000Y-85217000D03*
|
||||
X180086000Y-77597000D03*
|
||||
X183515000Y-85217000D03*
|
||||
X183515000Y-77597000D03*
|
||||
X129921000Y-108458000D03*
|
||||
X129921000Y-100838000D03*
|
||||
X126365000Y-108458000D03*
|
||||
X126365000Y-100838000D03*
|
||||
X179959000Y-108585000D03*
|
||||
X179959000Y-100965000D03*
|
||||
X183515000Y-108585000D03*
|
||||
X183515000Y-100965000D03*
|
||||
D12*
|
||||
X155000000Y-99000000D03*
|
||||
D13*
|
||||
X155000000Y-88840000D03*
|
||||
D25*
|
||||
X137287000Y-77724000D03*
|
||||
X142367000Y-77724000D03*
|
||||
X137287000Y-85344000D03*
|
||||
X142367000Y-85344000D03*
|
||||
X148463000Y-77724000D03*
|
||||
X153543000Y-77724000D03*
|
||||
X148463000Y-85344000D03*
|
||||
X153543000Y-85344000D03*
|
||||
X172593000Y-85344000D03*
|
||||
X167513000Y-85344000D03*
|
||||
X172593000Y-77724000D03*
|
||||
X167513000Y-77724000D03*
|
||||
X161417000Y-85344000D03*
|
||||
X156337000Y-85344000D03*
|
||||
X161417000Y-77724000D03*
|
||||
X156337000Y-77724000D03*
|
||||
X148463000Y-101219000D03*
|
||||
X153543000Y-101219000D03*
|
||||
X148463000Y-108839000D03*
|
||||
X153543000Y-108839000D03*
|
||||
X137287000Y-101219000D03*
|
||||
X142367000Y-101219000D03*
|
||||
X137287000Y-108839000D03*
|
||||
X142367000Y-108839000D03*
|
||||
X172593000Y-108712000D03*
|
||||
X167513000Y-108712000D03*
|
||||
X172593000Y-101092000D03*
|
||||
X167513000Y-101092000D03*
|
||||
X161417000Y-108712000D03*
|
||||
X156337000Y-108712000D03*
|
||||
X161417000Y-101092000D03*
|
||||
X156337000Y-101092000D03*
|
||||
D26*
|
||||
X157178971Y-64124429D03*
|
||||
X150828971Y-64124429D03*
|
||||
D27*
|
||||
X137287000Y-80137000D03*
|
||||
X137287000Y-83439000D03*
|
||||
X148336000Y-79629000D03*
|
||||
X148463000Y-83185000D03*
|
||||
X172593000Y-80137000D03*
|
||||
X172593000Y-83312000D03*
|
||||
X161417000Y-80010000D03*
|
||||
X161417000Y-83439000D03*
|
||||
X137287000Y-103505000D03*
|
||||
X137287000Y-106680000D03*
|
||||
X172593000Y-103378000D03*
|
||||
X172593000Y-106934000D03*
|
||||
X148463000Y-103505000D03*
|
||||
X148463000Y-106934000D03*
|
||||
X161417000Y-103759000D03*
|
||||
X161417000Y-106934000D03*
|
||||
D28*
|
||||
X137287000Y-83439000D02*
|
||||
X137287000Y-80137000D01*
|
||||
X148336000Y-83058000D02*
|
||||
X148336000Y-79629000D01*
|
||||
X148463000Y-83185000D02*
|
||||
X148336000Y-83058000D01*
|
||||
X172593000Y-83312000D02*
|
||||
X172593000Y-80137000D01*
|
||||
X161417000Y-83439000D02*
|
||||
X161417000Y-80010000D01*
|
||||
X137287000Y-106680000D02*
|
||||
X137287000Y-103505000D01*
|
||||
X172593000Y-106934000D02*
|
||||
X172593000Y-103378000D01*
|
||||
X148463000Y-106934000D02*
|
||||
X148463000Y-103505000D01*
|
||||
X161417000Y-106934000D02*
|
||||
X161417000Y-103759000D01*
|
||||
M02*
|
||||
249
samples/Gerber Image/simonShield-F.Mask.gbr
Normal file
249
samples/Gerber Image/simonShield-F.Mask.gbr
Normal file
@@ -0,0 +1,249 @@
|
||||
G04 #@! TF.FileFunction,Soldermask,Top*
|
||||
%FSLAX46Y46*%
|
||||
G04 Gerber Fmt 4.6, Leading zero omitted, Abs format (unit mm)*
|
||||
G04 Created by KiCad (PCBNEW 4.0.6-e0-6349~53~ubuntu16.04.1) date Sat Jul 1 03:26:18 2017*
|
||||
%MOMM*%
|
||||
%LPD*%
|
||||
G01*
|
||||
G04 APERTURE LIST*
|
||||
%ADD10C,0.100000*%
|
||||
%ADD11C,0.150000*%
|
||||
%ADD12C,2.000000*%
|
||||
%ADD13O,2.000000X2.000000*%
|
||||
%ADD14R,2.400000X1.924000*%
|
||||
%ADD15O,2.400000X1.924000*%
|
||||
%ADD16R,1.700000X1.700000*%
|
||||
%ADD17C,1.700000*%
|
||||
%ADD18C,2.398980*%
|
||||
%ADD19R,2.300000X2.400000*%
|
||||
%ADD20C,2.300000*%
|
||||
%ADD21C,4.000000*%
|
||||
%ADD22R,2.127200X2.127200*%
|
||||
%ADD23O,2.127200X2.127200*%
|
||||
%ADD24C,1.400760*%
|
||||
%ADD25C,1.797000*%
|
||||
%ADD26C,2.000200*%
|
||||
G04 APERTURE END LIST*
|
||||
D10*
|
||||
D11*
|
||||
X196250000Y-118000000D02*
|
||||
X113000000Y-118000000D01*
|
||||
X196250000Y-52750000D02*
|
||||
X196250000Y-118000000D01*
|
||||
X113000000Y-52750000D02*
|
||||
X196250000Y-52750000D01*
|
||||
X113000000Y-118000000D02*
|
||||
X113000000Y-52750000D01*
|
||||
D12*
|
||||
X145400000Y-68800000D03*
|
||||
D13*
|
||||
X145400000Y-58640000D03*
|
||||
D14*
|
||||
X189230000Y-61468000D03*
|
||||
D15*
|
||||
X191770000Y-61468000D03*
|
||||
X189230000Y-74168000D03*
|
||||
X191770000Y-64008000D03*
|
||||
X189230000Y-76708000D03*
|
||||
X191770000Y-66548000D03*
|
||||
X189230000Y-79248000D03*
|
||||
X191770000Y-69088000D03*
|
||||
X189230000Y-81788000D03*
|
||||
X191770000Y-71628000D03*
|
||||
X189230000Y-84328000D03*
|
||||
X191770000Y-74168000D03*
|
||||
X189230000Y-86868000D03*
|
||||
X191770000Y-76708000D03*
|
||||
X189230000Y-89408000D03*
|
||||
X191770000Y-79248000D03*
|
||||
X189230000Y-91948000D03*
|
||||
X191770000Y-81788000D03*
|
||||
X189230000Y-94488000D03*
|
||||
X191770000Y-84328000D03*
|
||||
X189230000Y-97028000D03*
|
||||
X191770000Y-86868000D03*
|
||||
X189230000Y-99568000D03*
|
||||
X191770000Y-89408000D03*
|
||||
X191770000Y-91948000D03*
|
||||
X189230000Y-102108000D03*
|
||||
X191770000Y-94488000D03*
|
||||
X191770000Y-99568000D03*
|
||||
X191770000Y-102108000D03*
|
||||
X191770000Y-104648000D03*
|
||||
X191770000Y-107188000D03*
|
||||
X189230000Y-104648000D03*
|
||||
X189230000Y-107188000D03*
|
||||
X189230000Y-64008000D03*
|
||||
X189230000Y-66548000D03*
|
||||
X189230000Y-69088000D03*
|
||||
X189230000Y-71628000D03*
|
||||
X189230000Y-109728000D03*
|
||||
X191770000Y-109728000D03*
|
||||
X191770000Y-97028000D03*
|
||||
D14*
|
||||
X118110000Y-61468000D03*
|
||||
D15*
|
||||
X120650000Y-61468000D03*
|
||||
X118110000Y-64008000D03*
|
||||
X120650000Y-64008000D03*
|
||||
X118110000Y-66548000D03*
|
||||
X120650000Y-66548000D03*
|
||||
X118110000Y-69088000D03*
|
||||
X120650000Y-69088000D03*
|
||||
X118110000Y-71628000D03*
|
||||
X120650000Y-71628000D03*
|
||||
X118110000Y-74168000D03*
|
||||
X120650000Y-74168000D03*
|
||||
X118110000Y-76708000D03*
|
||||
X120650000Y-76708000D03*
|
||||
X118110000Y-79248000D03*
|
||||
X120650000Y-79248000D03*
|
||||
X118110000Y-81788000D03*
|
||||
X120650000Y-81788000D03*
|
||||
X118110000Y-84328000D03*
|
||||
X120650000Y-84328000D03*
|
||||
X118110000Y-86868000D03*
|
||||
X120650000Y-86868000D03*
|
||||
X118110000Y-89408000D03*
|
||||
X120650000Y-89408000D03*
|
||||
X118110000Y-91948000D03*
|
||||
X120650000Y-91948000D03*
|
||||
X118110000Y-94488000D03*
|
||||
X120650000Y-94488000D03*
|
||||
X118110000Y-97028000D03*
|
||||
X120650000Y-97028000D03*
|
||||
X118110000Y-99568000D03*
|
||||
X120650000Y-99568000D03*
|
||||
X118110000Y-102108000D03*
|
||||
X120650000Y-102108000D03*
|
||||
X118110000Y-104648000D03*
|
||||
X120650000Y-104648000D03*
|
||||
X118110000Y-107188000D03*
|
||||
X120650000Y-107188000D03*
|
||||
X118110000Y-109728000D03*
|
||||
X120650000Y-109728000D03*
|
||||
D16*
|
||||
X135255000Y-64008000D03*
|
||||
D17*
|
||||
X135255000Y-61508000D03*
|
||||
D18*
|
||||
X164465000Y-85471000D03*
|
||||
X164465000Y-77851000D03*
|
||||
D19*
|
||||
X136017000Y-72644000D03*
|
||||
D20*
|
||||
X133477000Y-72644000D03*
|
||||
D19*
|
||||
X173863000Y-72644000D03*
|
||||
D20*
|
||||
X176403000Y-72644000D03*
|
||||
D19*
|
||||
X136017000Y-96139000D03*
|
||||
D20*
|
||||
X133477000Y-96139000D03*
|
||||
D19*
|
||||
X173863000Y-96012000D03*
|
||||
D20*
|
||||
X176403000Y-96012000D03*
|
||||
D21*
|
||||
X125250000Y-112250000D03*
|
||||
X160500000Y-70500000D03*
|
||||
X167250000Y-92250000D03*
|
||||
D22*
|
||||
X127007800Y-61542700D03*
|
||||
D23*
|
||||
X129547800Y-61542700D03*
|
||||
X127007800Y-64082700D03*
|
||||
X129547800Y-64082700D03*
|
||||
D24*
|
||||
X166243000Y-67056000D03*
|
||||
X164973000Y-68326000D03*
|
||||
X164973000Y-65786000D03*
|
||||
X128143000Y-71374000D03*
|
||||
X129413000Y-72644000D03*
|
||||
X126873000Y-72644000D03*
|
||||
X181737000Y-73914000D03*
|
||||
X180467000Y-72644000D03*
|
||||
X183007000Y-72644000D03*
|
||||
X128143000Y-94742000D03*
|
||||
X129413000Y-96012000D03*
|
||||
X126873000Y-96012000D03*
|
||||
X181737000Y-97282000D03*
|
||||
X180467000Y-96012000D03*
|
||||
X183007000Y-96012000D03*
|
||||
D18*
|
||||
X134239000Y-85344000D03*
|
||||
X134239000Y-77724000D03*
|
||||
X145415000Y-85344000D03*
|
||||
X145415000Y-77724000D03*
|
||||
X175641000Y-85217000D03*
|
||||
X175641000Y-77597000D03*
|
||||
X145415000Y-108966000D03*
|
||||
X145415000Y-101346000D03*
|
||||
X134239000Y-108458000D03*
|
||||
X134239000Y-100838000D03*
|
||||
X175641000Y-108585000D03*
|
||||
X175641000Y-100965000D03*
|
||||
X164465000Y-108839000D03*
|
||||
X164465000Y-101219000D03*
|
||||
X169164000Y-62611000D03*
|
||||
X161544000Y-62611000D03*
|
||||
X169164000Y-59563000D03*
|
||||
X161544000Y-59563000D03*
|
||||
X129921000Y-85217000D03*
|
||||
X129921000Y-77597000D03*
|
||||
X126365000Y-85217000D03*
|
||||
X126365000Y-77597000D03*
|
||||
X180086000Y-85217000D03*
|
||||
X180086000Y-77597000D03*
|
||||
X183515000Y-85217000D03*
|
||||
X183515000Y-77597000D03*
|
||||
X129921000Y-108458000D03*
|
||||
X129921000Y-100838000D03*
|
||||
X126365000Y-108458000D03*
|
||||
X126365000Y-100838000D03*
|
||||
X179959000Y-108585000D03*
|
||||
X179959000Y-100965000D03*
|
||||
X183515000Y-108585000D03*
|
||||
X183515000Y-100965000D03*
|
||||
D12*
|
||||
X155000000Y-99000000D03*
|
||||
D13*
|
||||
X155000000Y-88840000D03*
|
||||
D25*
|
||||
X137287000Y-77724000D03*
|
||||
X142367000Y-77724000D03*
|
||||
X137287000Y-85344000D03*
|
||||
X142367000Y-85344000D03*
|
||||
X148463000Y-77724000D03*
|
||||
X153543000Y-77724000D03*
|
||||
X148463000Y-85344000D03*
|
||||
X153543000Y-85344000D03*
|
||||
X172593000Y-85344000D03*
|
||||
X167513000Y-85344000D03*
|
||||
X172593000Y-77724000D03*
|
||||
X167513000Y-77724000D03*
|
||||
X161417000Y-85344000D03*
|
||||
X156337000Y-85344000D03*
|
||||
X161417000Y-77724000D03*
|
||||
X156337000Y-77724000D03*
|
||||
X148463000Y-101219000D03*
|
||||
X153543000Y-101219000D03*
|
||||
X148463000Y-108839000D03*
|
||||
X153543000Y-108839000D03*
|
||||
X137287000Y-101219000D03*
|
||||
X142367000Y-101219000D03*
|
||||
X137287000Y-108839000D03*
|
||||
X142367000Y-108839000D03*
|
||||
X172593000Y-108712000D03*
|
||||
X167513000Y-108712000D03*
|
||||
X172593000Y-101092000D03*
|
||||
X167513000Y-101092000D03*
|
||||
X161417000Y-108712000D03*
|
||||
X156337000Y-108712000D03*
|
||||
X161417000Y-101092000D03*
|
||||
X156337000Y-101092000D03*
|
||||
D26*
|
||||
X157178971Y-64124429D03*
|
||||
X150828971Y-64124429D03*
|
||||
M02*
|
||||
392
samples/Gerber Image/simonShield-F.SilkS.gbr
Normal file
392
samples/Gerber Image/simonShield-F.SilkS.gbr
Normal file
@@ -0,0 +1,392 @@
|
||||
G04 #@! TF.FileFunction,Legend,Top*
|
||||
%FSLAX46Y46*%
|
||||
G04 Gerber Fmt 4.6, Leading zero omitted, Abs format (unit mm)*
|
||||
G04 Created by KiCad (PCBNEW 4.0.6-e0-6349~53~ubuntu16.04.1) date Sat Jul 1 03:26:18 2017*
|
||||
%MOMM*%
|
||||
%LPD*%
|
||||
G01*
|
||||
G04 APERTURE LIST*
|
||||
%ADD10C,0.100000*%
|
||||
%ADD11C,0.150000*%
|
||||
%ADD12C,0.187500*%
|
||||
%ADD13C,0.125000*%
|
||||
%ADD14C,0.300000*%
|
||||
%ADD15C,0.120000*%
|
||||
%ADD16C,0.002540*%
|
||||
%ADD17C,0.200000*%
|
||||
%ADD18C,0.170000*%
|
||||
%ADD19C,0.175000*%
|
||||
%ADD20C,0.180000*%
|
||||
%ADD21C,0.190000*%
|
||||
G04 APERTURE END LIST*
|
||||
D10*
|
||||
D11*
|
||||
X196250000Y-118000000D02*
|
||||
X113000000Y-118000000D01*
|
||||
X196250000Y-52750000D02*
|
||||
X196250000Y-118000000D01*
|
||||
X113000000Y-52750000D02*
|
||||
X196250000Y-52750000D01*
|
||||
X113000000Y-118000000D02*
|
||||
X113000000Y-52750000D01*
|
||||
D12*
|
||||
X171964285Y-68083333D02*
|
||||
X123317001Y-106767381D01*
|
||||
X123650334Y-106767381D02*
|
||||
X123745572Y-106767381D01*
|
||||
X123793191Y-106815000D01*
|
||||
X123840810Y-106910238D01*
|
||||
X123864619Y-107100714D01*
|
||||
X123864619Y-107434048D01*
|
||||
X123840810Y-107624524D01*
|
||||
X123793191Y-107719762D01*
|
||||
X123745572Y-107767381D01*
|
||||
X123650334Y-107767381D01*
|
||||
X123602715Y-107719762D01*
|
||||
X123555096Y-107624524D01*
|
||||
X123531286Y-107434048D01*
|
||||
X123531286Y-107100714D01*
|
||||
X123555096Y-106910238D01*
|
||||
X123602715Y-106815000D01*
|
||||
X123650334Y-106767381D01*
|
||||
X124031287Y-106767381D02*
|
||||
X196102429Y-69431810D01*
|
||||
D13*
|
||||
X193274334Y-66254381D02*
|
||||
X193393381Y-67254381D01*
|
||||
X193488619Y-66540095D01*
|
||||
X193583857Y-67254381D01*
|
||||
X193702905Y-66254381D01*
|
||||
X193869572Y-66968667D02*
|
||||
X194107667Y-66968667D01*
|
||||
X193821953Y-67254381D02*
|
||||
X193988620Y-66254381D01*
|
||||
X194155286Y-67254381D01*
|
||||
X194321953Y-67254381D02*
|
||||
X194321953Y-66254381D01*
|
||||
X194607667Y-67254381D02*
|
||||
X194393381Y-66682952D01*
|
||||
X194607667Y-66254381D02*
|
||||
X194321953Y-66825810D01*
|
||||
X194821953Y-66730571D02*
|
||||
X194988619Y-66730571D01*
|
||||
X195060048Y-67254381D02*
|
||||
X194821953Y-67254381D01*
|
||||
X194821953Y-66254381D01*
|
||||
X195060048Y-66254381D01*
|
||||
X195274334Y-66254381D02*
|
||||
X195274334Y-67063905D01*
|
||||
X195298143Y-67159143D01*
|
||||
X195321953Y-67206762D01*
|
||||
X195369572Y-67254381D01*
|
||||
X195464810Y-67254381D01*
|
||||
X195512429Y-67206762D01*
|
||||
X195536238Y-67159143D01*
|
||||
X195560048Y-67063905D01*
|
||||
X195560048Y-66254381D01*
|
||||
X195798144Y-67254381D02*
|
||||
X195798144Y-66254381D01*
|
||||
X195988620Y-66254381D01*
|
||||
X196036239Y-66302000D01*
|
||||
X196060048Y-66349619D01*
|
||||
X196083858Y-66444857D01*
|
||||
X196083858Y-66587714D01*
|
||||
X196060048Y-66682952D01*
|
||||
X196036239Y-66730571D01*
|
||||
X195988620Y-66778190D01*
|
||||
X195798144Y-66778190D01*
|
||||
D17*
|
||||
X193929096Y-64016000D02*
|
||||
X193833858Y-63968381D01*
|
||||
X193691001Y-63968381D01*
|
||||
X193548143Y-64016000D01*
|
||||
X193452905Y-64111238D01*
|
||||
X193405286Y-64206476D01*
|
||||
X193357667Y-64396952D01*
|
||||
X193357667Y-64539810D01*
|
||||
X193405286Y-64730286D01*
|
||||
X193452905Y-64825524D01*
|
||||
X193548143Y-64920762D01*
|
||||
X193691001Y-64968381D01*
|
||||
X193786239Y-64968381D01*
|
||||
X193929096Y-64920762D01*
|
||||
X193976715Y-64873143D01*
|
||||
X193976715Y-64539810D01*
|
||||
X193786239Y-64539810D01*
|
||||
X194405286Y-64968381D02*
|
||||
X194405286Y-63968381D01*
|
||||
X194976715Y-64968381D01*
|
||||
X194976715Y-63968381D01*
|
||||
X195452905Y-64968381D02*
|
||||
X195452905Y-63968381D01*
|
||||
X195691000Y-63968381D01*
|
||||
X195833858Y-64016000D01*
|
||||
X195929096Y-64111238D01*
|
||||
X195976715Y-64206476D01*
|
||||
X196024334Y-64396952D01*
|
||||
X196024334Y-64539810D01*
|
||||
X195976715Y-64730286D01*
|
||||
X195929096Y-64825524D01*
|
||||
X195833858Y-64920762D01*
|
||||
X195691000Y-64968381D01*
|
||||
X195452905Y-64968381D01*
|
||||
X193278286Y-61539429D02*
|
||||
X194040191Y-61539429D01*
|
||||
X193659239Y-61920381D02*
|
||||
X193659239Y-61158476D01*
|
||||
X194992572Y-60920381D02*
|
||||
X194516381Y-60920381D01*
|
||||
X194468762Y-61396571D01*
|
||||
X194516381Y-61348952D01*
|
||||
X194611619Y-61301333D01*
|
||||
X194849715Y-61301333D01*
|
||||
X194944953Y-61348952D01*
|
||||
X194992572Y-61396571D01*
|
||||
X186697905Y-84637524D01*
|
||||
X186602667Y-84732762D01*
|
||||
X186459809Y-84780381D01*
|
||||
X186221714Y-84780381D01*
|
||||
X187174095Y-84494667D02*
|
||||
X187650286Y-84494667D01*
|
||||
X187078857Y-84780381D02*
|
||||
X187412190Y-83780381D01*
|
||||
X187745524Y-84780381D01*
|
||||
D13*
|
||||
X185555048Y-81240381D02*
|
||||
X185721715Y-82240381D01*
|
||||
X185888381Y-81240381D01*
|
||||
X186055048Y-82240381D02*
|
||||
X186055048Y-81240381D01*
|
||||
X186174095Y-81240381D01*
|
||||
X186245524Y-81288000D01*
|
||||
X186293143Y-81383238D01*
|
||||
X186316952Y-81478476D01*
|
||||
X186340762Y-81668952D01*
|
||||
X186340762Y-81811810D01*
|
||||
X186316952Y-82002286D01*
|
||||
X186293143Y-82097524D01*
|
||||
X186245524Y-82192762D01*
|
||||
X186174095Y-82240381D01*
|
||||
X186055048Y-82240381D01*
|
||||
X186555048Y-82240381D02*
|
||||
X186555048Y-81240381D01*
|
||||
X186674095Y-81240381D01*
|
||||
X186745524Y-81288000D01*
|
||||
X186793143Y-81383238D01*
|
||||
X186816952Y-81478476D01*
|
||||
X186840762Y-81668952D01*
|
||||
X186840762Y-81811810D01*
|
||||
X186816952Y-82002286D01*
|
||||
X186793143Y-82097524D01*
|
||||
X186745524Y-82192762D01*
|
||||
X186674095Y-82240381D01*
|
||||
X186555048Y-82240381D01*
|
||||
X187031238Y-81954667D02*
|
||||
X187269333Y-81954667D01*
|
||||
X186983619Y-82240381D02*
|
||||
X187150286Y-81240381D01*
|
||||
X187316952Y-82240381D01*
|
||||
D17*
|
||||
X185245524Y-79700381D02*
|
||||
X185245524Y-78700381D01*
|
||||
X185483619Y-78700381D01*
|
||||
X185626477Y-78748000D01*
|
||||
X185721715Y-78843238D01*
|
||||
X185769334Y-78938476D01*
|
||||
X185816953Y-79128952D01*
|
||||
X185816953Y-79271810D01*
|
||||
X185769334Y-79462286D01*
|
||||
X185721715Y-79557524D01*
|
||||
X185626477Y-79652762D01*
|
||||
X185483619Y-79700381D01*
|
||||
X185245524Y-79700381D01*
|
||||
X186197905Y-79414667D02*
|
||||
X186674096Y-79414667D01*
|
||||
X186102667Y-79700381D02*
|
||||
X186436000Y-78700381D01*
|
||||
X186769334Y-79700381D01*
|
||||
X187674096Y-79605143D02*
|
||||
X187626477Y-79652762D01*
|
||||
X187483620Y-79700381D01*
|
||||
X187388382Y-79700381D01*
|
||||
X187245524Y-79652762D01*
|
||||
X187150286Y-79557524D01*
|
||||
X187102667Y-79462286D01*
|
||||
X187055048Y-79271810D01*
|
||||
X187055048Y-79128952D01*
|
||||
X187102667Y-78938476D01*
|
||||
X187150286Y-78843238D01*
|
||||
X187245524Y-78748000D01*
|
||||
X187388382Y-78700381D01*
|
||||
X187483620Y-78700381D01*
|
||||
X187626477Y-78748000D01*
|
||||
X187674096Y-78795619D01*
|
||||
X185745524Y-77065143D02*
|
||||
X185697905Y-77112762D01*
|
||||
X185555048Y-77160381D01*
|
||||
X185459810Y-77160381D01*
|
||||
X185316952Y-77112762D01*
|
||||
X185221714Y-77017524D01*
|
||||
X185174095Y-76922286D01*
|
||||
X185126476Y-76731810D01*
|
||||
X185126476Y-76588952D01*
|
||||
X185174095Y-76398476D01*
|
||||
X185221714Y-76303238D01*
|
||||
X185316952Y-76208000D01*
|
||||
X185459810Y-76160381D01*
|
||||
X185555048Y-76160381D01*
|
||||
X185697905Y-76208000D01*
|
||||
X185745524Y-76255619D01*
|
||||
X186174095Y-77160381D02*
|
||||
X186174095Y-76160381D01*
|
||||
X186174095Y-76636571D02*
|
||||
X186745524Y-76636571D01*
|
||||
X186745524Y-77160381D02*
|
||||
X186745524Y-76160381D01*
|
||||
X187745524Y-77160381D02*
|
||||
X187174095Y-77160381D01*
|
||||
X187459809Y-77160381D02*
|
||||
X187459809Y-76160381D01*
|
||||
X187364571Y-76303238D01*
|
||||
X187269333Y-76398476D01*
|
||||
X187174095Y-76446095D01*
|
||||
X185491524Y-74525143D02*
|
||||
X185443905Y-74572762D01*
|
||||
X185301048Y-74620381D01*
|
||||
X185205810Y-74620381D01*
|
||||
X185062952Y-74572762D01*
|
||||
X184967714Y-74477524D01*
|
||||
X184920095Y-74382286D01*
|
||||
X184872476Y-74191810D01*
|
||||
X184872476Y-74048952D01*
|
||||
X184920095Y-73858476D01*
|
||||
X184967714Y-73763238D01*
|
||||
X185062952Y-73668000D01*
|
||||
X185205810Y-73620381D01*
|
||||
X185301048Y-73620381D01*
|
||||
X185443905Y-73668000D01*
|
||||
X185491524Y-73715619D01*
|
||||
X185920095Y-74620381D02*
|
||||
X185920095Y-73620381D01*
|
||||
X185920095Y-74096571D02*
|
||||
X186491524Y-74096571D01*
|
||||
X186491524Y-74620381D02*
|
||||
X186491524Y-73620381D01*
|
||||
X186920095Y-73715619D02*
|
||||
X186967714Y-73668000D01*
|
||||
X187062952Y-73620381D01*
|
||||
X187301048Y-73620381D01*
|
||||
X187396286Y-73668000D01*
|
||||
X187443905Y-73715619D01*
|
||||
X187491524Y-73810857D01*
|
||||
X187491524Y-73906095D01*
|
||||
X187443905Y-74048952D01*
|
||||
X186872476Y-74620381D01*
|
||||
X187491524Y-74620381D01*
|
||||
X185491524Y-71985143D02*
|
||||
X185443905Y-72032762D01*
|
||||
X185301048Y-72080381D01*
|
||||
X185205810Y-72080381D01*
|
||||
X185062952Y-72032762D01*
|
||||
X184967714Y-71937524D01*
|
||||
X184920095Y-71842286D01*
|
||||
X184872476Y-71651810D01*
|
||||
X184872476Y-71508952D01*
|
||||
X184920095Y-71318476D01*
|
||||
X184967714Y-71223238D01*
|
||||
X185062952Y-71128000D01*
|
||||
X185205810Y-71080381D01*
|
||||
X185301048Y-71080381D01*
|
||||
X185443905Y-71128000D01*
|
||||
X185491524Y-71175619D01*
|
||||
X185920095Y-72080381D02*
|
||||
X185920095Y-71080381D01*
|
||||
X185920095Y-71556571D02*
|
||||
X186491524Y-71556571D01*
|
||||
X186491524Y-72080381D02*
|
||||
X186491524Y-71080381D01*
|
||||
X186872476Y-71080381D02*
|
||||
X187491524Y-71080381D01*
|
||||
X187158190Y-71461333D01*
|
||||
X187301048Y-71461333D01*
|
||||
X187396286Y-71508952D01*
|
||||
X187443905Y-71556571D01*
|
||||
X187491524Y-71651810D01*
|
||||
X187491524Y-71889905D01*
|
||||
X187443905Y-71985143D01*
|
||||
X187396286Y-72032762D01*
|
||||
X187301048Y-72080381D01*
|
||||
X187015333Y-72080381D01*
|
||||
X186920095Y-72032762D01*
|
||||
X186872476Y-71985143D01*
|
||||
D13*
|
||||
X186094762Y-68588000D02*
|
||||
X186047143Y-68540381D01*
|
||||
X185975715Y-68540381D01*
|
||||
X185904286Y-68588000D01*
|
||||
X185856667Y-68683238D01*
|
||||
X185832858Y-68778476D01*
|
||||
X185809048Y-68968952D01*
|
||||
X185809048Y-69111810D01*
|
||||
X185832858Y-69302286D01*
|
||||
X185856667Y-69397524D01*
|
||||
X185904286Y-69492762D01*
|
||||
X185975715Y-69540381D01*
|
||||
X186023334Y-69540381D01*
|
||||
X186094762Y-69492762D01*
|
||||
X186118572Y-69445143D01*
|
||||
X186118572Y-69111810D01*
|
||||
X186023334Y-69111810D01*
|
||||
X186332858Y-69540381D02*
|
||||
X186332858Y-68540381D01*
|
||||
X186618572Y-69540381D01*
|
||||
X186618572Y-68540381D01*
|
||||
X186856668Y-69540381D02*
|
||||
X186856668Y-68540381D01*
|
||||
X186975715Y-68540381D01*
|
||||
X187047144Y-68588000D01*
|
||||
X187094763Y-68683238D01*
|
||||
X187118572Y-68778476D01*
|
||||
X187142382Y-68968952D01*
|
||||
X187142382Y-69111810D01*
|
||||
X187118572Y-69302286D01*
|
||||
X187094763Y-69397524D01*
|
||||
X187047144Y-69492762D01*
|
||||
X186975715Y-69540381D01*
|
||||
X186856668Y-69540381D01*
|
||||
X187332858Y-69254667D02*
|
||||
X187570953Y-69254667D01*
|
||||
X187285239Y-69540381D02*
|
||||
X187451906Y-68540381D01*
|
||||
X187618572Y-69540381D01*
|
||||
D17*
|
||||
X185459810Y-67000381D02*
|
||||
X185459810Y-66000381D01*
|
||||
X185888381Y-66952762D02*
|
||||
X186031238Y-67000381D01*
|
||||
X186269334Y-67000381D01*
|
||||
X186364572Y-66952762D01*
|
||||
X186412191Y-66905143D01*
|
||||
X186459810Y-66809905D01*
|
||||
X186459810Y-66714667D01*
|
||||
X186412191Y-66619429D01*
|
||||
X186364572Y-66571810D01*
|
||||
X186269334Y-66524190D01*
|
||||
X186078857Y-66476571D01*
|
||||
X185983619Y-66428952D01*
|
||||
X185936000Y-66381333D01*
|
||||
X185888381Y-66286095D01*
|
||||
X185888381Y-66190857D01*
|
||||
X185936000Y-66095619D01*
|
||||
X185983619Y-66048000D01*
|
||||
X186078857Y-66000381D01*
|
||||
X186316953Y-66000381D01*
|
||||
X186459810Y-66048000D01*
|
||||
X186888381Y-67000381D02*
|
||||
X186888381Y-66000381D01*
|
||||
X170488095Y-97273810D01*
|
||||
X146122399Y-64195858D02*
|
||||
X146884304Y-64195858D01*
|
||||
X146503352Y-64576810D02*
|
||||
X146503352Y-63814905D01*
|
||||
M02*
|
||||
805
samples/Gerber Image/simonShield-drl_map.gbr
Normal file
805
samples/Gerber Image/simonShield-drl_map.gbr
Normal file
@@ -0,0 +1,805 @@
|
||||
%FSLAX45Y45*%
|
||||
G04 Gerber Fmt 4.5, Leading zero omitted, Abs format (unit mm)*
|
||||
G04 Created by KiCad (PCBNEW 4.0.6-e0-6349~53~ubuntu16.04.1) date Sat Jul 1 03:26:22 2017*
|
||||
%MOMM*%
|
||||
%LPD*%
|
||||
G01*
|
||||
G04 APERTURE LIST*
|
||||
%ADD10C,0.127000*%
|
||||
%ADD11C,0.150000*%
|
||||
%ADD12C,0.200000*%
|
||||
%ADD13C,0.300000*%
|
||||
G04 APERTURE END LIST*
|
||||
D10*
|
||||
D11*
|
||||
X19625000Y-11800000D02*
|
||||
X11300000Y-11800000D01*
|
||||
X19625000Y-5275000D02*
|
||||
X19625000Y-11800000D01*
|
||||
X11300000Y-5275000D02*
|
||||
X19625000Y-5275000D01*
|
||||
X11300000Y-11800000D02*
|
||||
X11300000Y-5275000D01*
|
||||
D12*
|
||||
X12657300Y-7234400D02*
|
||||
X12717300Y-7294400D01*
|
||||
X12717300Y-7234400D02*
|
||||
X12657300Y-7294400D01*
|
||||
X12657300Y-9571200D02*
|
||||
X18270700Y-9571200D02*
|
||||
X18330700Y-9631200D01*
|
||||
X18330700Y-9571200D02*
|
||||
X18270700Y-9631200D01*
|
||||
X13764260Y-8013700D02*
|
||||
G75*
|
||||
G03X13764260Y-8013700I-35560J0D01*
|
||||
G01*
|
||||
X13764260Y-8343900D02*
|
||||
G75*
|
||||
G03X13764260Y-8343900I-35560J0D01*
|
||||
G01*
|
||||
X13764260Y-10350500D02*
|
||||
G75*
|
||||
G03X13764260Y-10350500I-35560J0D01*
|
||||
G01*
|
||||
X13764260Y-10668000D02*
|
||||
G75*
|
||||
G03X13764260Y-10668000I-35560J0D01*
|
||||
G01*
|
||||
X14869160Y-7962900D02*
|
||||
G75*
|
||||
G03X14869160Y-7962900I-35560J0D01*
|
||||
G01*
|
||||
X14881860Y-8318500D02*
|
||||
G75*
|
||||
G03X14881860Y-8318500I-35560J0D01*
|
||||
G01*
|
||||
X14881860Y-10350500D02*
|
||||
G75*
|
||||
G03X14881860Y-10350500I-35560J0D01*
|
||||
G01*
|
||||
X14881860Y-10693400D02*
|
||||
G75*
|
||||
G03X14881860Y-10693400I-35560J0D01*
|
||||
G01*
|
||||
X16177260Y-8001000D02*
|
||||
G75*
|
||||
G03X16177260Y-8001000I-35560J0D01*
|
||||
G01*
|
||||
X16177260Y-8343900D02*
|
||||
G75*
|
||||
G03X16177260Y-8343900I-35560J0D01*
|
||||
G01*
|
||||
X16177260Y-10375900D02*
|
||||
G75*
|
||||
G03X16177260Y-10375900I-35560J0D01*
|
||||
G01*
|
||||
X16177260Y-10693400D02*
|
||||
G75*
|
||||
G03X16177260Y-10693400I-35560J0D01*
|
||||
G01*
|
||||
X17294860Y-8013700D02*
|
||||
G75*
|
||||
G03X17294860Y-8013700I-35560J0D01*
|
||||
G01*
|
||||
X17294860Y-8331200D02*
|
||||
G75*
|
||||
G03X17294860Y-8331200I-35560J0D01*
|
||||
G01*
|
||||
X17294860Y-10337800D02*
|
||||
G75*
|
||||
G03X17294860Y-10337800I-35560J0D01*
|
||||
G01*
|
||||
X17294860Y-10693400D02*
|
||||
G75*
|
||||
G03X17294860Y-10693400I-35560J0D01*
|
||||
G01*
|
||||
X13525500Y-6360800D02*
|
||||
X13525500Y-6440800D01*
|
||||
X13485500Y-6400800D02*
|
||||
X13565500Y-6400800D01*
|
||||
X14540000Y-5824000D02*
|
||||
X14540000Y-5904000D01*
|
||||
X14500000Y-5864000D02*
|
||||
X14580000Y-5864000D01*
|
||||
X14540000Y-6840000D02*
|
||||
X14540000Y-6920000D01*
|
||||
X14500000Y-6880000D02*
|
||||
X14580000Y-6880000D01*
|
||||
X15500000Y-8844000D02*
|
||||
X15500000Y-8924000D01*
|
||||
X15460000Y-8884000D02*
|
||||
X15540000Y-8884000D01*
|
||||
X15500000Y-9860000D02*
|
||||
X15500000Y-9940000D01*
|
||||
X15460000Y-9900000D02*
|
||||
X15540000Y-9900000D01*
|
||||
X12586462Y-7809738D01*
|
||||
X12686538Y-7759700D02*
|
||||
G75*
|
||||
G03X12686538Y-7759700I-50038J0D01*
|
||||
G01*
|
||||
X12586462Y-8471662D02*
|
||||
X12686538Y-8571738D01*
|
||||
X12686538Y-8471662D02*
|
||||
X12586462Y-8571738D01*
|
||||
X12686538Y-8521700D02*
|
||||
G75*
|
||||
G03X12686538Y-8521700I-50038J0D01*
|
||||
G01*
|
||||
X12586462Y-10033762D02*
|
||||
X12686538Y-10133838D01*
|
||||
X12686538Y-10033762D02*
|
||||
X12586462Y-10133838D01*
|
||||
X12686538Y-10083800D02*
|
||||
G75*
|
||||
G03X12686538Y-10083800I-50038J0D01*
|
||||
G01*
|
||||
X12586462Y-10795762D02*
|
||||
X12686538Y-10895838D01*
|
||||
X12686538Y-10795762D02*
|
||||
X12586462Y-10895838D01*
|
||||
X12686538Y-10845800D02*
|
||||
G75*
|
||||
G03X12686538Y-10845800I-50038J0D01*
|
||||
G01*
|
||||
X12942062Y-7709662D02*
|
||||
X13042138Y-7809738D01*
|
||||
X13042138Y-7709662D02*
|
||||
X12942062Y-7809738D01*
|
||||
X13042138Y-7759700D02*
|
||||
G75*
|
||||
G03X13042138Y-7759700I-50038J0D01*
|
||||
G01*
|
||||
X12942062Y-8471662D02*
|
||||
X13042138Y-8571738D01*
|
||||
X13042138Y-8471662D02*
|
||||
X12942062Y-8571738D01*
|
||||
X13042138Y-8521700D02*
|
||||
G75*
|
||||
G03X13042138Y-8521700I-50038J0D01*
|
||||
G01*
|
||||
X12942062Y-10033762D02*
|
||||
X13042138Y-10133838D01*
|
||||
X13042138Y-10033762D02*
|
||||
X12942062Y-10133838D01*
|
||||
X13042138Y-10083800D02*
|
||||
G75*
|
||||
G03X13042138Y-10083800I-50038J0D01*
|
||||
G01*
|
||||
X12942062Y-10795762D02*
|
||||
X13042138Y-10895838D01*
|
||||
X13042138Y-10795762D02*
|
||||
X12942062Y-10895838D01*
|
||||
X13042138Y-10845800D02*
|
||||
G75*
|
||||
G03X13042138Y-10845800I-50038J0D01*
|
||||
G01*
|
||||
X13297662Y-7214362D02*
|
||||
X13397738Y-7314438D01*
|
||||
X13397738Y-7214362D02*
|
||||
X13297662Y-7314438D01*
|
||||
X13397738Y-7264400D02*
|
||||
G75*
|
||||
G03X13397738Y-7264400I-50038J0D01*
|
||||
G01*
|
||||
X13297662Y-9563862D02*
|
||||
X13397738Y-9663938D01*
|
||||
X13397738Y-9563862D02*
|
||||
X13297662Y-9663938D01*
|
||||
X13397738Y-9613900D02*
|
||||
G75*
|
||||
G03X13397738Y-9613900I-50038J0D01*
|
||||
G01*
|
||||
X13373862Y-7722362D02*
|
||||
X13473938Y-7822438D01*
|
||||
X13473938Y-7722362D02*
|
||||
X13373862Y-7822438D01*
|
||||
X13473938Y-7772400D02*
|
||||
G75*
|
||||
G03X13473938Y-7772400I-50038J0D01*
|
||||
G01*
|
||||
X13373862Y-8484362D02*
|
||||
X13473938Y-8584438D01*
|
||||
X13473938Y-8484362D02*
|
||||
X13373862Y-8584438D01*
|
||||
X13473938Y-8534400D02*
|
||||
G75*
|
||||
G03X13473938Y-8534400I-50038J0D01*
|
||||
G01*
|
||||
X13373862Y-10033762D02*
|
||||
X13473938Y-10133838D01*
|
||||
X13473938Y-10033762D02*
|
||||
X13373862Y-10133838D01*
|
||||
X13473938Y-10083800D02*
|
||||
G75*
|
||||
G03X13473938Y-10083800I-50038J0D01*
|
||||
G01*
|
||||
X13373862Y-10795762D02*
|
||||
X13473938Y-10895838D01*
|
||||
X13473938Y-10795762D02*
|
||||
X13373862Y-10895838D01*
|
||||
X13473938Y-10845800D02*
|
||||
G75*
|
||||
G03X13473938Y-10845800I-50038J0D01*
|
||||
G01*
|
||||
X13551662Y-7214362D02*
|
||||
X13651738Y-7314438D01*
|
||||
X13651738Y-7214362D02*
|
||||
X13551662Y-7314438D01*
|
||||
X13651738Y-7264400D02*
|
||||
G75*
|
||||
G03X13651738Y-7264400I-50038J0D01*
|
||||
G01*
|
||||
X13551662Y-9563862D02*
|
||||
X13651738Y-9663938D01*
|
||||
X13651738Y-9563862D02*
|
||||
X13551662Y-9663938D01*
|
||||
X13651738Y-9613900D02*
|
||||
G75*
|
||||
G03X13651738Y-9613900I-50038J0D01*
|
||||
G01*
|
||||
X14491462Y-7722362D02*
|
||||
X14591538Y-7822438D01*
|
||||
X14591538Y-7722362D02*
|
||||
X14491462Y-7822438D01*
|
||||
X14591538Y-7772400D02*
|
||||
G75*
|
||||
G03X14591538Y-7772400I-50038J0D01*
|
||||
G01*
|
||||
X14491462Y-8484362D02*
|
||||
X14591538Y-8584438D01*
|
||||
X14591538Y-8484362D02*
|
||||
X14491462Y-8584438D01*
|
||||
X14591538Y-8534400D02*
|
||||
G75*
|
||||
G03X14591538Y-8534400I-50038J0D01*
|
||||
G01*
|
||||
X14491462Y-10084562D02*
|
||||
X14591538Y-10184638D01*
|
||||
X14591538Y-10084562D02*
|
||||
X14491462Y-10184638D01*
|
||||
X14591538Y-10134600D02*
|
||||
G75*
|
||||
G03X14591538Y-10134600I-50038J0D01*
|
||||
G01*
|
||||
X14491462Y-10846562D02*
|
||||
X14591538Y-10946638D01*
|
||||
X14591538Y-10846562D02*
|
||||
X14491462Y-10946638D01*
|
||||
X14591538Y-10896600D02*
|
||||
G75*
|
||||
G03X14591538Y-10896600I-50038J0D01*
|
||||
G01*
|
||||
X15032859Y-6362405D02*
|
||||
X15132935Y-6462481D01*
|
||||
X15132935Y-6362405D02*
|
||||
X15032859Y-6462481D01*
|
||||
X15132935Y-6412443D02*
|
||||
G75*
|
||||
G03X15132935Y-6412443I-50038J0D01*
|
||||
G01*
|
||||
X15667859Y-6362405D02*
|
||||
X15767935Y-6462481D01*
|
||||
X15767935Y-6362405D02*
|
||||
X15667859Y-6462481D01*
|
||||
X15767935Y-6412443D02*
|
||||
G75*
|
||||
G03X15767935Y-6412443I-50038J0D01*
|
||||
G01*
|
||||
X16104362Y-5906262D02*
|
||||
X16204438Y-6006338D01*
|
||||
X16204438Y-5906262D02*
|
||||
X16104362Y-6006338D01*
|
||||
X16204438Y-5956300D02*
|
||||
G75*
|
||||
G03X16204438Y-5956300I-50038J0D01*
|
||||
G01*
|
||||
X16104362Y-6211062D02*
|
||||
X16204438Y-6311138D01*
|
||||
X16204438Y-6211062D02*
|
||||
X16104362Y-6311138D01*
|
||||
X16204438Y-6261100D02*
|
||||
G75*
|
||||
G03X16204438Y-6261100I-50038J0D01*
|
||||
G01*
|
||||
X16396462Y-7735062D02*
|
||||
X16496538Y-7835138D01*
|
||||
X16496538Y-7735062D02*
|
||||
X16396462Y-7835138D01*
|
||||
X16496538Y-7785100D02*
|
||||
G75*
|
||||
G03X16496538Y-7785100I-50038J0D01*
|
||||
G01*
|
||||
X16396462Y-8497062D02*
|
||||
X16496538Y-8597138D01*
|
||||
X16496538Y-8497062D02*
|
||||
X16396462Y-8597138D01*
|
||||
X16496538Y-8547100D02*
|
||||
G75*
|
||||
G03X16496538Y-8547100I-50038J0D01*
|
||||
G01*
|
||||
X16396462Y-10071862D02*
|
||||
X16496538Y-10171938D01*
|
||||
X16496538Y-10071862D02*
|
||||
X16396462Y-10171938D01*
|
||||
X16496538Y-10121900D02*
|
||||
G75*
|
||||
G03X16496538Y-10121900I-50038J0D01*
|
||||
G01*
|
||||
X16396462Y-10833862D02*
|
||||
X16496538Y-10933938D01*
|
||||
X16496538Y-10833862D02*
|
||||
X16396462Y-10933938D01*
|
||||
X16496538Y-10883900D02*
|
||||
G75*
|
||||
G03X16496538Y-10883900I-50038J0D01*
|
||||
G01*
|
||||
X16866362Y-5906262D02*
|
||||
X16966438Y-6006338D01*
|
||||
X16966438Y-5906262D02*
|
||||
X16866362Y-6006338D01*
|
||||
X16966438Y-5956300D02*
|
||||
G75*
|
||||
G03X16966438Y-5956300I-50038J0D01*
|
||||
G01*
|
||||
X16866362Y-6211062D02*
|
||||
X16966438Y-6311138D01*
|
||||
X16966438Y-6211062D02*
|
||||
X16866362Y-6311138D01*
|
||||
X16966438Y-6261100D02*
|
||||
G75*
|
||||
G03X16966438Y-6261100I-50038J0D01*
|
||||
G01*
|
||||
X17336262Y-7214362D02*
|
||||
X17436338Y-7314438D01*
|
||||
X17436338Y-7214362D02*
|
||||
X17336262Y-7314438D01*
|
||||
X17436338Y-7264400D02*
|
||||
G75*
|
||||
G03X17436338Y-7264400I-50038J0D01*
|
||||
G01*
|
||||
X17336262Y-9551162D02*
|
||||
X17436338Y-9651238D01*
|
||||
X17436338Y-9551162D02*
|
||||
X17336262Y-9651238D01*
|
||||
X17436338Y-9601200D02*
|
||||
G75*
|
||||
G03X17436338Y-9601200I-50038J0D01*
|
||||
G01*
|
||||
X17514062Y-7709662D02*
|
||||
X17614138Y-7809738D01*
|
||||
X17614138Y-7709662D02*
|
||||
X17514062Y-7809738D01*
|
||||
X17614138Y-7759700D02*
|
||||
G75*
|
||||
G03X17614138Y-7759700I-50038J0D01*
|
||||
G01*
|
||||
X17514062Y-8471662D02*
|
||||
X17614138Y-8571738D01*
|
||||
X17614138Y-8471662D02*
|
||||
X17514062Y-8571738D01*
|
||||
X17614138Y-8521700D02*
|
||||
G75*
|
||||
G03X17614138Y-8521700I-50038J0D01*
|
||||
G01*
|
||||
X17514062Y-10046462D02*
|
||||
X17614138Y-10146538D01*
|
||||
X17614138Y-10046462D02*
|
||||
X17514062Y-10146538D01*
|
||||
X17614138Y-10096500D02*
|
||||
G75*
|
||||
G03X17614138Y-10096500I-50038J0D01*
|
||||
G01*
|
||||
X17514062Y-10808462D02*
|
||||
X17614138Y-10908538D01*
|
||||
X17614138Y-10808462D02*
|
||||
X17514062Y-10908538D01*
|
||||
X17614138Y-10858500D02*
|
||||
G75*
|
||||
G03X17614138Y-10858500I-50038J0D01*
|
||||
G01*
|
||||
X17590262Y-7214362D02*
|
||||
X17690338Y-7314438D01*
|
||||
X17690338Y-7214362D02*
|
||||
X17590262Y-7314438D01*
|
||||
X17690338Y-7264400D02*
|
||||
G75*
|
||||
G03X17690338Y-7264400I-50038J0D01*
|
||||
G01*
|
||||
X17590262Y-9551162D02*
|
||||
X17690338Y-9651238D01*
|
||||
X17690338Y-9551162D02*
|
||||
X17590262Y-9651238D01*
|
||||
X17690338Y-9601200D02*
|
||||
G75*
|
||||
G03X17690338Y-9601200I-50038J0D01*
|
||||
G01*
|
||||
X17945862Y-10046462D02*
|
||||
X18045938Y-10146538D01*
|
||||
X18045938Y-10046462D02*
|
||||
X17945862Y-10146538D01*
|
||||
X18045938Y-10096500D02*
|
||||
G75*
|
||||
G03X18045938Y-10096500I-50038J0D01*
|
||||
G01*
|
||||
X17945862Y-10808462D02*
|
||||
X18045938Y-10908538D01*
|
||||
X18045938Y-10808462D02*
|
||||
X17945862Y-10908538D01*
|
||||
X18045938Y-10858500D02*
|
||||
G75*
|
||||
G03X18045938Y-10858500I-50038J0D01*
|
||||
G01*
|
||||
X17958562Y-7709662D02*
|
||||
X18058638Y-7809738D01*
|
||||
X18058638Y-7709662D02*
|
||||
X17958562Y-7809738D01*
|
||||
X18058638Y-7759700D02*
|
||||
G75*
|
||||
G03X18058638Y-7759700I-50038J0D01*
|
||||
G01*
|
||||
X17958562Y-8471662D02*
|
||||
X18058638Y-8571738D01*
|
||||
X18058638Y-8471662D02*
|
||||
X17958562Y-8571738D01*
|
||||
X18058638Y-8521700D02*
|
||||
G75*
|
||||
G03X18058638Y-8521700I-50038J0D01*
|
||||
G01*
|
||||
X18301462Y-7709662D02*
|
||||
X18401538Y-7809738D01*
|
||||
X18401538Y-7709662D02*
|
||||
X18301462Y-7809738D01*
|
||||
X18401538Y-7759700D02*
|
||||
G75*
|
||||
G03X18401538Y-7759700I-50038J0D01*
|
||||
G01*
|
||||
X18301462Y-8471662D02*
|
||||
X18401538Y-8571738D01*
|
||||
X18401538Y-8471662D02*
|
||||
X18301462Y-8571738D01*
|
||||
X18401538Y-8521700D02*
|
||||
G75*
|
||||
G03X18401538Y-8521700I-50038J0D01*
|
||||
G01*
|
||||
X18301462Y-10046462D02*
|
||||
X18401538Y-10146538D01*
|
||||
X18401538Y-10046462D02*
|
||||
X18301462Y-10146538D01*
|
||||
X18401538Y-10096500D02*
|
||||
G75*
|
||||
G03X18401538Y-10096500I-50038J0D01*
|
||||
G01*
|
||||
X18301462Y-10808462D02*
|
||||
X18401538Y-10908538D01*
|
||||
X18401538Y-10808462D02*
|
||||
X18301462Y-10908538D01*
|
||||
X18401538Y-10858500D02*
|
||||
G75*
|
||||
G03X18401538Y-10858500I-50038J0D01*
|
||||
G01*
|
||||
X11760200Y-6096000D02*
|
||||
X11861800Y-6197600D01*
|
||||
X11861800Y-6096000D02*
|
||||
X18872200Y-10668000D02*
|
||||
X18973800Y-10769600D01*
|
||||
X18973800Y-10668000D02*
|
||||
X18872200Y-10769600D01*
|
||||
X18923000Y-10668000D02*
|
||||
X18923000Y-10769600D01*
|
||||
X18872200Y-10718800D02*
|
||||
X18973800Y-10718800D01*
|
||||
X18872200Y-10922000D02*
|
||||
X18973800Y-11023600D01*
|
||||
X18973800Y-10922000D02*
|
||||
X18872200Y-11023600D01*
|
||||
X18923000Y-10922000D02*
|
||||
X18923000Y-11023600D01*
|
||||
X18872200Y-10972800D02*
|
||||
X18973800Y-10972800D01*
|
||||
X19126200Y-6096000D02*
|
||||
X19227800Y-6197600D01*
|
||||
X19227800Y-6096000D02*
|
||||
X19126200Y-6197600D01*
|
||||
X19177000Y-6096000D02*
|
||||
X19177000Y-6197600D01*
|
||||
X19126200Y-6146800D02*
|
||||
X19227800Y-6146800D01*
|
||||
X19126200Y-6350000D02*
|
||||
X19227800Y-6451600D01*
|
||||
X19227800Y-6350000D02*
|
||||
X19126200Y-6451600D01*
|
||||
X19177000Y-6350000D02*
|
||||
X19177000Y-6451600D01*
|
||||
X19126200Y-6400800D02*
|
||||
X19227800Y-6400800D01*
|
||||
X19126200Y-6604000D02*
|
||||
X19227800Y-6705600D01*
|
||||
X19227800Y-6604000D02*
|
||||
X19126200Y-6705600D01*
|
||||
X19177000Y-6604000D02*
|
||||
X19177000Y-6705600D01*
|
||||
X19126200Y-6654800D02*
|
||||
X19227800Y-6654800D01*
|
||||
X19126200Y-6858000D02*
|
||||
X19227800Y-6959600D01*
|
||||
X19227800Y-6858000D02*
|
||||
X19126200Y-6959600D01*
|
||||
X19177000Y-6858000D02*
|
||||
X19177000Y-6959600D01*
|
||||
X19126200Y-6908800D02*
|
||||
X19227800Y-6908800D01*
|
||||
X19126200Y-7112000D02*
|
||||
X19227800Y-7213600D01*
|
||||
X19227800Y-7112000D02*
|
||||
X19126200Y-7213600D01*
|
||||
X19177000Y-7112000D02*
|
||||
X19177000Y-7213600D01*
|
||||
X19126200Y-7162800D02*
|
||||
X19227800Y-7162800D01*
|
||||
X19126200Y-7366000D02*
|
||||
X19227800Y-7467600D01*
|
||||
X19227800Y-7366000D02*
|
||||
X19126200Y-7467600D01*
|
||||
X19177000Y-7366000D02*
|
||||
X19177000Y-7467600D01*
|
||||
X19126200Y-7416800D02*
|
||||
X19227800Y-7416800D01*
|
||||
X19126200Y-7620000D02*
|
||||
X19227800Y-7721600D01*
|
||||
X19227800Y-7620000D02*
|
||||
X19126200Y-7721600D01*
|
||||
X19177000Y-7620000D02*
|
||||
X19177000Y-7721600D01*
|
||||
X19126200Y-7670800D02*
|
||||
X19227800Y-7670800D01*
|
||||
X19126200Y-7874000D02*
|
||||
X19227800Y-7975600D01*
|
||||
X19227800Y-7874000D02*
|
||||
X19126200Y-7975600D01*
|
||||
X19177000Y-7874000D02*
|
||||
X19177000Y-7975600D01*
|
||||
X19126200Y-7924800D02*
|
||||
X19227800Y-7924800D01*
|
||||
X19126200Y-8128000D02*
|
||||
X19227800Y-8229600D01*
|
||||
X19227800Y-8128000D02*
|
||||
X19126200Y-8229600D01*
|
||||
X19177000Y-8128000D02*
|
||||
X19177000Y-8229600D01*
|
||||
X19126200Y-8178800D02*
|
||||
X19227800Y-8178800D01*
|
||||
X19126200Y-8382000D02*
|
||||
X19227800Y-8483600D01*
|
||||
X19227800Y-8382000D02*
|
||||
X19126200Y-8483600D01*
|
||||
X19177000Y-8382000D02*
|
||||
X19177000Y-8483600D01*
|
||||
X19126200Y-8432800D02*
|
||||
X19227800Y-8432800D01*
|
||||
X19126200Y-8636000D02*
|
||||
X19227800Y-8737600D01*
|
||||
X19227800Y-8636000D02*
|
||||
X19126200Y-8737600D01*
|
||||
X19177000Y-8636000D02*
|
||||
X19177000Y-8737600D01*
|
||||
X19126200Y-8686800D02*
|
||||
X19227800Y-8686800D01*
|
||||
X19126200Y-8890000D02*
|
||||
X19227800Y-8991600D01*
|
||||
X19227800Y-8890000D02*
|
||||
X19126200Y-8991600D01*
|
||||
X19177000Y-8890000D02*
|
||||
X19177000Y-8991600D01*
|
||||
X19126200Y-8940800D02*
|
||||
X19227800Y-8940800D01*
|
||||
X19126200Y-9144000D02*
|
||||
X19227800Y-9245600D01*
|
||||
X19227800Y-9144000D02*
|
||||
X19126200Y-9245600D01*
|
||||
X19177000Y-9144000D02*
|
||||
X19177000Y-9245600D01*
|
||||
X19126200Y-9194800D02*
|
||||
X19227800Y-9194800D01*
|
||||
X19126200Y-9398000D02*
|
||||
X19227800Y-9499600D01*
|
||||
X19227800Y-9398000D02*
|
||||
X19126200Y-9499600D01*
|
||||
X19177000Y-9398000D02*
|
||||
X19177000Y-9499600D01*
|
||||
X19126200Y-9448800D02*
|
||||
X19227800Y-9448800D01*
|
||||
X19126200Y-9652000D02*
|
||||
X19227800Y-9753600D01*
|
||||
X19227800Y-9652000D02*
|
||||
X19126200Y-9753600D01*
|
||||
X19177000Y-9652000D02*
|
||||
X19177000Y-9753600D01*
|
||||
X19126200Y-9702800D02*
|
||||
X19227800Y-9702800D01*
|
||||
X19126200Y-9906000D02*
|
||||
X19227800Y-10007600D01*
|
||||
X19227800Y-9906000D02*
|
||||
X19126200Y-10007600D01*
|
||||
X19177000Y-9906000D02*
|
||||
X19177000Y-10007600D01*
|
||||
X19126200Y-9956800D02*
|
||||
X19227800Y-9956800D01*
|
||||
X19126200Y-10160000D02*
|
||||
X19227800Y-10261600D01*
|
||||
X19227800Y-10160000D02*
|
||||
X19126200Y-10261600D01*
|
||||
X19177000Y-10160000D02*
|
||||
X19177000Y-10261600D01*
|
||||
X19126200Y-10210800D02*
|
||||
X19227800Y-10210800D01*
|
||||
X19126200Y-10414000D02*
|
||||
X19227800Y-10515600D01*
|
||||
X19227800Y-10414000D02*
|
||||
X19126200Y-10515600D01*
|
||||
X19177000Y-10414000D02*
|
||||
X19177000Y-10515600D01*
|
||||
X19126200Y-10464800D02*
|
||||
X19227800Y-10464800D01*
|
||||
X19126200Y-10668000D02*
|
||||
X19227800Y-10769600D01*
|
||||
X19227800Y-10668000D02*
|
||||
X19126200Y-10769600D01*
|
||||
X19177000Y-10668000D02*
|
||||
X19177000Y-10769600D01*
|
||||
X19126200Y-10718800D02*
|
||||
X19227800Y-10718800D01*
|
||||
X19126200Y-10922000D02*
|
||||
X19227800Y-11023600D01*
|
||||
X19227800Y-10922000D02*
|
||||
X19126200Y-11023600D01*
|
||||
X19177000Y-10922000D02*
|
||||
X19177000Y-11023600D01*
|
||||
X19126200Y-10972800D02*
|
||||
X19227800Y-10972800D01*
|
||||
D13*
|
||||
X11563928Y-12273214D02*
|
||||
X11563928Y-11973214D01*
|
||||
X11635357Y-11973214D01*
|
||||
X11678214Y-11987500D01*
|
||||
X11706786Y-12016071D01*
|
||||
X11721071Y-12044643D01*
|
||||
X11735357Y-12101786D01*
|
||||
X11735357Y-12144643D01*
|
||||
X11721071Y-12201786D01*
|
||||
X11706786Y-12230357D01*
|
||||
X11678214Y-12258929D01*
|
||||
X11635357Y-12273214D01*
|
||||
X11563928Y-12273214D01*
|
||||
X11863928Y-12273214D02*
|
||||
X11863928Y-12073214D01*
|
||||
X11863928Y-12130357D02*
|
||||
X11878214Y-12101786D01*
|
||||
X11892500Y-12087500D01*
|
||||
X11921071Y-12073214D01*
|
||||
X11949643Y-12073214D01*
|
||||
X12049643Y-12273214D02*
|
||||
X12049643Y-12073214D01*
|
||||
X12049643Y-11973214D02*
|
||||
X12035357Y-11987500D01*
|
||||
X12049643Y-12001786D01*
|
||||
X12063928Y-11987500D01*
|
||||
X12049643Y-11973214D01*
|
||||
X18121071Y-12688929D01*
|
||||
X18106786Y-12646071D01*
|
||||
X18092500Y-12617500D01*
|
||||
X18063929Y-12574643D01*
|
||||
X18049643Y-12560357D01*
|
||||
X11292500Y-13163500D02*
|
||||
G75*
|
||||
G03X11292500Y-13163500I-35560J0D01*
|
||||
G01*
|
||||
X11621071Y-12999214D02*
|
||||
X11649643Y-12999214D01*
|
||||
X11678214Y-13013500D01*
|
||||
X11692500Y-13027786D01*
|
||||
X11706786Y-13056357D01*
|
||||
X11721071Y-13113500D01*
|
||||
X11721071Y-13184929D01*
|
||||
X11706786Y-13242071D01*
|
||||
X11692500Y-13270643D01*
|
||||
X12706786Y-13509500D01*
|
||||
X12735357Y-13495214D01*
|
||||
X12778214Y-13495214D01*
|
||||
X12806786Y-13509500D01*
|
||||
X12821071Y-13538071D01*
|
||||
X12821071Y-13695214D01*
|
||||
X12963928Y-13695214D02*
|
||||
X12963928Y-13495214D01*
|
||||
X12963928Y-13523786D02*
|
||||
X12978214Y-13509500D01*
|
||||
X13006786Y-13495214D01*
|
||||
X13049643Y-13495214D01*
|
||||
X13078214Y-13509500D01*
|
||||
X13092500Y-13538071D01*
|
||||
X13092500Y-13695214D01*
|
||||
X13092500Y-13538071D02*
|
||||
X13106786Y-13509500D01*
|
||||
X13135357Y-13495214D01*
|
||||
X13178214Y-13495214D01*
|
||||
X13206786Y-13509500D01*
|
||||
X13221071Y-13538071D01*
|
||||
X13221071Y-13695214D01*
|
||||
X13806786Y-13380929D02*
|
||||
X13549643Y-13766643D01*
|
||||
X14192500Y-13395214D02*
|
||||
X14221071Y-13395214D01*
|
||||
X14249643Y-13409500D01*
|
||||
X14263928Y-13423786D01*
|
||||
X14278214Y-13452357D01*
|
||||
X14292500Y-13509500D01*
|
||||
X14292500Y-13580929D01*
|
||||
X14278214Y-13638071D01*
|
||||
X14263928Y-13666643D01*
|
||||
X14249643Y-13680929D01*
|
||||
X14221071Y-13695214D01*
|
||||
X14192500Y-13695214D01*
|
||||
X14163928Y-13680929D01*
|
||||
X14149643Y-13666643D01*
|
||||
X14135357Y-13638071D01*
|
||||
X14121071Y-13580929D01*
|
||||
X14121071Y-13509500D01*
|
||||
X14135357Y-13452357D01*
|
||||
X14149643Y-13423786D01*
|
||||
X14163928Y-13409500D01*
|
||||
X14192500Y-13395214D01*
|
||||
X14421071Y-13666643D02*
|
||||
X14435357Y-13680929D01*
|
||||
X14421071Y-13695214D01*
|
||||
X14406786Y-13680929D01*
|
||||
X14421071Y-13666643D01*
|
||||
X14421071Y-13695214D01*
|
||||
X14621071Y-13395214D02*
|
||||
X14649643Y-13395214D01*
|
||||
X14678214Y-13409500D01*
|
||||
X14692500Y-13423786D01*
|
||||
X14706785Y-13452357D01*
|
||||
X14721071Y-13509500D01*
|
||||
X14721071Y-13580929D01*
|
||||
X14706785Y-13638071D01*
|
||||
X14692500Y-13666643D01*
|
||||
X14678214Y-13680929D01*
|
||||
X14649643Y-13695214D01*
|
||||
X14621071Y-13695214D01*
|
||||
X14592500Y-13680929D01*
|
||||
X14578214Y-13666643D01*
|
||||
X14563928Y-13638071D01*
|
||||
X14549643Y-13580929D01*
|
||||
X14549643Y-13509500D01*
|
||||
X14563928Y-13452357D01*
|
||||
X14578214Y-13423786D01*
|
||||
X14592500Y-13409500D01*
|
||||
X14621071Y-13395214D01*
|
||||
X14821071Y-13395214D02*
|
||||
X15006785Y-13395214D01*
|
||||
X14906785Y-13509500D01*
|
||||
X14949643Y-13509500D01*
|
||||
X14978214Y-13523786D01*
|
||||
X14992500Y-13538071D01*
|
||||
X15006785Y-13566643D01*
|
||||
X11292500Y-14797538D01*
|
||||
X11292500Y-14697462D02*
|
||||
X11192424Y-14797538D01*
|
||||
X11292500Y-14747500D02*
|
||||
G75*
|
||||
G03X11292500Y-14747500I-50038J0D01*
|
||||
G01*
|
||||
X11721071Y-14883214D02*
|
||||
X11549643Y-14883214D01*
|
||||
X11635357Y-14883214D02*
|
||||
X11635357Y-14583214D01*
|
||||
X11606786Y-14626071D01*
|
||||
X11578214Y-14654643D01*
|
||||
X18135357Y-15136357D01*
|
||||
X18121071Y-15064929D01*
|
||||
X18106786Y-15022071D01*
|
||||
X18092500Y-14993500D01*
|
||||
X18063929Y-14950643D01*
|
||||
X18049643Y-14936357D01*
|
||||
M02*
|
||||
135
samples/HCL/main.tf
Normal file
135
samples/HCL/main.tf
Normal file
@@ -0,0 +1,135 @@
|
||||
resource "aws_security_group" "elb_sec_group" {
|
||||
description = "Allow traffic from the internet to ELB port 80"
|
||||
vpc_id = "${var.vpc_id}"
|
||||
|
||||
ingress {
|
||||
from_port = 80
|
||||
to_port = 80
|
||||
protocol = "tcp"
|
||||
cidr_blocks = ["${split(",", var.allowed_cidr_blocks)}"]
|
||||
}
|
||||
|
||||
egress {
|
||||
from_port = 0
|
||||
to_port = 0
|
||||
protocol = "-1"
|
||||
cidr_blocks = ["0.0.0.0/0"]
|
||||
}
|
||||
}
|
||||
|
||||
resource "aws_security_group" "dokku_allow_ssh_from_internal" {
|
||||
description = "Allow git access over ssh from the private subnet"
|
||||
vpc_id = "${var.vpc_id}"
|
||||
|
||||
ingress {
|
||||
from_port = 22
|
||||
to_port = 22
|
||||
protocol = "tcp"
|
||||
cidr_blocks = ["${var.private_subnet_cidr}"]
|
||||
}
|
||||
|
||||
egress {
|
||||
from_port = 0
|
||||
to_port = 0
|
||||
protocol = "-1"
|
||||
cidr_blocks = ["0.0.0.0/0"]
|
||||
}
|
||||
}
|
||||
|
||||
resource "aws_security_group" "allow_from_elb_to_instance" {
|
||||
description = "Allow traffic from the ELB to the private instance"
|
||||
vpc_id = "${var.vpc_id}"
|
||||
|
||||
ingress {
|
||||
security_groups = ["${aws_security_group.elb_sec_group.id}"]
|
||||
from_port = 80
|
||||
to_port = 80
|
||||
protocol = "tcp"
|
||||
}
|
||||
|
||||
egress {
|
||||
from_port = 0
|
||||
to_port = 0
|
||||
protocol = "-1"
|
||||
cidr_blocks = ["0.0.0.0/0"]
|
||||
}
|
||||
}
|
||||
|
||||
resource "aws_instance" "dokku" {
|
||||
ami = "ami-47a23a30"
|
||||
instance_type = "${var.instance_type}"
|
||||
associate_public_ip_address = false
|
||||
key_name = "${var.key_name}"
|
||||
subnet_id = "${var.private_subnet_id}"
|
||||
vpc_security_group_ids = [
|
||||
"${var.bastion_sec_group_id}",
|
||||
"${aws_security_group.allow_from_elb_to_instance.id}",
|
||||
"${aws_security_group.dokku_allow_ssh_from_internal.id}"
|
||||
]
|
||||
tags {
|
||||
Name = "${var.name}"
|
||||
}
|
||||
connection {
|
||||
user = "ubuntu"
|
||||
private_key = "${var.private_key}"
|
||||
bastion_host = "${var.bastion_host}"
|
||||
bastion_port = "${var.bastion_port}"
|
||||
bastion_user = "${var.bastion_user}"
|
||||
bastion_private_key = "${var.bastion_private_key}"
|
||||
}
|
||||
provisioner "file" {
|
||||
source = "${path.module}/../scripts/install-dokku.sh"
|
||||
destination = "/home/ubuntu/install-dokku.sh"
|
||||
}
|
||||
provisioner "remote-exec" {
|
||||
inline = [
|
||||
"chmod +x /home/ubuntu/install-dokku.sh",
|
||||
"HOSTNAME=${var.hostname} /home/ubuntu/install-dokku.sh"
|
||||
]
|
||||
}
|
||||
}
|
||||
|
||||
resource "aws_elb" "elb_dokku" {
|
||||
name = "elb-dokku-${var.name}"
|
||||
subnets = ["${var.public_subnet_id}"]
|
||||
security_groups = ["${aws_security_group.elb_sec_group.id}"]
|
||||
|
||||
listener {
|
||||
instance_port = 80
|
||||
instance_protocol = "http"
|
||||
lb_port = 80
|
||||
lb_protocol = "http"
|
||||
}
|
||||
|
||||
health_check {
|
||||
healthy_threshold = 2
|
||||
unhealthy_threshold = 2
|
||||
timeout = 3
|
||||
target = "HTTP:80/"
|
||||
interval = 30
|
||||
}
|
||||
|
||||
instances = ["${aws_instance.dokku.id}"]
|
||||
cross_zone_load_balancing = false
|
||||
idle_timeout = 400
|
||||
|
||||
tags {
|
||||
Name = "elb-dokku-${var.name}"
|
||||
}
|
||||
}
|
||||
|
||||
resource "aws_route53_record" "dokku-deploy" {
|
||||
zone_id = "${var.zone_id}"
|
||||
name = "deploy.${var.hostname}"
|
||||
type = "A"
|
||||
ttl = "300"
|
||||
records = ["${aws_instance.dokku.private_ip}"]
|
||||
}
|
||||
|
||||
resource "aws_route53_record" "dokku-wildcard" {
|
||||
zone_id = "${var.zone_id}"
|
||||
name = "*.${var.hostname}"
|
||||
type = "CNAME"
|
||||
ttl = "300"
|
||||
records = ["${aws_elb.elb_dokku.dns_name}"]
|
||||
}
|
||||
89
samples/HLSL/bloom.cginc
Normal file
89
samples/HLSL/bloom.cginc
Normal file
@@ -0,0 +1,89 @@
|
||||
// From https://github.com/Unity-Technologies/PostProcessing/blob/master/PostProcessing/Resources/Shaders/Bloom.cginc
|
||||
// Licensed under the MIT license
|
||||
|
||||
#ifndef __BLOOM__
|
||||
#define __BLOOM__
|
||||
|
||||
#include "Common.cginc"
|
||||
|
||||
// Brightness function
|
||||
half Brightness(half3 c)
|
||||
{
|
||||
return Max3(c);
|
||||
}
|
||||
|
||||
// 3-tap median filter
|
||||
half3 Median(half3 a, half3 b, half3 c)
|
||||
{
|
||||
return a + b + c - min(min(a, b), c) - max(max(a, b), c);
|
||||
}
|
||||
|
||||
// Downsample with a 4x4 box filter
|
||||
half3 DownsampleFilter(sampler2D tex, float2 uv, float2 texelSize)
|
||||
{
|
||||
float4 d = texelSize.xyxy * float4(-1.0, -1.0, 1.0, 1.0);
|
||||
|
||||
half3 s;
|
||||
s = DecodeHDR(tex2D(tex, uv + d.xy));
|
||||
s += DecodeHDR(tex2D(tex, uv + d.zy));
|
||||
s += DecodeHDR(tex2D(tex, uv + d.xw));
|
||||
s += DecodeHDR(tex2D(tex, uv + d.zw));
|
||||
|
||||
return s * (1.0 / 4.0);
|
||||
}
|
||||
|
||||
// Downsample with a 4x4 box filter + anti-flicker filter
|
||||
half3 DownsampleAntiFlickerFilter(sampler2D tex, float2 uv, float2 texelSize)
|
||||
{
|
||||
float4 d = texelSize.xyxy * float4(-1.0, -1.0, 1.0, 1.0);
|
||||
|
||||
half3 s1 = DecodeHDR(tex2D(tex, uv + d.xy));
|
||||
half3 s2 = DecodeHDR(tex2D(tex, uv + d.zy));
|
||||
half3 s3 = DecodeHDR(tex2D(tex, uv + d.xw));
|
||||
half3 s4 = DecodeHDR(tex2D(tex, uv + d.zw));
|
||||
|
||||
// Karis's luma weighted average (using brightness instead of luma)
|
||||
half s1w = 1.0 / (Brightness(s1) + 1.0);
|
||||
half s2w = 1.0 / (Brightness(s2) + 1.0);
|
||||
half s3w = 1.0 / (Brightness(s3) + 1.0);
|
||||
half s4w = 1.0 / (Brightness(s4) + 1.0);
|
||||
half one_div_wsum = 1.0 / (s1w + s2w + s3w + s4w);
|
||||
|
||||
return (s1 * s1w + s2 * s2w + s3 * s3w + s4 * s4w) * one_div_wsum;
|
||||
}
|
||||
|
||||
half3 UpsampleFilter(sampler2D tex, float2 uv, float2 texelSize, float sampleScale)
|
||||
{
|
||||
#if MOBILE_OR_CONSOLE
|
||||
// 4-tap bilinear upsampler
|
||||
float4 d = texelSize.xyxy * float4(-1.0, -1.0, 1.0, 1.0) * (sampleScale * 0.5);
|
||||
|
||||
half3 s;
|
||||
s = DecodeHDR(tex2D(tex, uv + d.xy));
|
||||
s += DecodeHDR(tex2D(tex, uv + d.zy));
|
||||
s += DecodeHDR(tex2D(tex, uv + d.xw));
|
||||
s += DecodeHDR(tex2D(tex, uv + d.zw));
|
||||
|
||||
return s * (1.0 / 4.0);
|
||||
#else
|
||||
// 9-tap bilinear upsampler (tent filter)
|
||||
float4 d = texelSize.xyxy * float4(1.0, 1.0, -1.0, 0.0) * sampleScale;
|
||||
|
||||
half3 s;
|
||||
s = DecodeHDR(tex2D(tex, uv - d.xy));
|
||||
s += DecodeHDR(tex2D(tex, uv - d.wy)) * 2.0;
|
||||
s += DecodeHDR(tex2D(tex, uv - d.zy));
|
||||
|
||||
s += DecodeHDR(tex2D(tex, uv + d.zw)) * 2.0;
|
||||
s += DecodeHDR(tex2D(tex, uv)) * 4.0;
|
||||
s += DecodeHDR(tex2D(tex, uv + d.xw)) * 2.0;
|
||||
|
||||
s += DecodeHDR(tex2D(tex, uv + d.zy));
|
||||
s += DecodeHDR(tex2D(tex, uv + d.wy)) * 2.0;
|
||||
s += DecodeHDR(tex2D(tex, uv + d.xy));
|
||||
|
||||
return s * (1.0 / 16.0);
|
||||
#endif
|
||||
}
|
||||
|
||||
#endif // __BLOOM__
|
||||
62
samples/INI/ultimate-temp-controller.pro
Normal file
62
samples/INI/ultimate-temp-controller.pro
Normal file
@@ -0,0 +1,62 @@
|
||||
update=22/05/2015 07:44:53
|
||||
version=1
|
||||
last_client=kicad
|
||||
[general]
|
||||
version=1
|
||||
RootSch=
|
||||
BoardNm=
|
||||
[pcbnew]
|
||||
version=1
|
||||
LastNetListRead=
|
||||
UseCmpFile=1
|
||||
PadDrill=0.600000000000
|
||||
PadDrillOvalY=0.600000000000
|
||||
PadSizeH=1.500000000000
|
||||
PadSizeV=1.500000000000
|
||||
PcbTextSizeV=1.500000000000
|
||||
PcbTextSizeH=1.500000000000
|
||||
PcbTextThickness=0.300000000000
|
||||
ModuleTextSizeV=1.000000000000
|
||||
ModuleTextSizeH=1.000000000000
|
||||
ModuleTextSizeThickness=0.150000000000
|
||||
SolderMaskClearance=0.000000000000
|
||||
SolderMaskMinWidth=0.000000000000
|
||||
DrawSegmentWidth=0.200000000000
|
||||
BoardOutlineThickness=0.100000000000
|
||||
ModuleOutlineThickness=0.150000000000
|
||||
[cvpcb]
|
||||
version=1
|
||||
NetIExt=net
|
||||
[eeschema]
|
||||
version=1
|
||||
LibDir=
|
||||
[eeschema/libraries]
|
||||
LibName1=power
|
||||
LibName2=device
|
||||
LibName3=transistors
|
||||
LibName4=conn
|
||||
LibName5=linear
|
||||
LibName6=regul
|
||||
LibName7=74xx
|
||||
LibName8=cmos4000
|
||||
LibName9=adc-dac
|
||||
LibName10=memory
|
||||
LibName11=xilinx
|
||||
LibName12=microcontrollers
|
||||
LibName13=dsp
|
||||
LibName14=microchip
|
||||
LibName15=analog_switches
|
||||
LibName16=motorola
|
||||
LibName17=texas
|
||||
LibName18=intel
|
||||
LibName19=audio
|
||||
LibName20=interface
|
||||
LibName21=digital-audio
|
||||
LibName22=philips
|
||||
LibName23=display
|
||||
LibName24=cypress
|
||||
LibName25=siliconi
|
||||
LibName26=opto
|
||||
LibName27=atmel
|
||||
LibName28=contrib
|
||||
LibName29=valves
|
||||
39
samples/Jison Lex/classy.jisonlex
Normal file
39
samples/Jison Lex/classy.jisonlex
Normal file
@@ -0,0 +1,39 @@
|
||||
digit [0-9]
|
||||
id [a-zA-Z][a-zA-Z0-9]*
|
||||
|
||||
%%
|
||||
"//".* /* ignore comment */
|
||||
"main" return 'MAIN';
|
||||
"class" return 'CLASS';
|
||||
"extends" return 'EXTENDS';
|
||||
"nat" return 'NATTYPE';
|
||||
"if" return 'IF';
|
||||
"else" return 'ELSE';
|
||||
"for" return 'FOR';
|
||||
"printNat" return 'PRINTNAT';
|
||||
"readNat" return 'READNAT';
|
||||
"this" return 'THIS';
|
||||
"new" return 'NEW';
|
||||
"var" return 'VAR';
|
||||
"null" return 'NUL';
|
||||
{digit}+ return 'NATLITERAL';
|
||||
{id} return 'ID';
|
||||
"==" return 'EQUALITY';
|
||||
"=" return 'ASSIGN';
|
||||
"+" return 'PLUS';
|
||||
"-" return 'MINUS';
|
||||
"*" return 'TIMES';
|
||||
">" return 'GREATER';
|
||||
"||" return 'OR';
|
||||
"!" return 'NOT';
|
||||
"." return 'DOT';
|
||||
"{" return 'LBRACE';
|
||||
"}" return 'RBRACE';
|
||||
"(" return 'LPAREN';
|
||||
")" return 'RPAREN';
|
||||
";" return 'SEMICOLON';
|
||||
\s+ /* skip whitespace */
|
||||
"." throw 'Illegal character';
|
||||
<<EOF>> return 'ENDOFFILE';
|
||||
|
||||
|
||||
29
samples/Jison Lex/lex_grammar.jisonlex
Normal file
29
samples/Jison Lex/lex_grammar.jisonlex
Normal file
@@ -0,0 +1,29 @@
|
||||
|
||||
%%
|
||||
\n+ {yy.freshLine = true;}
|
||||
\s+ {yy.freshLine = false;}
|
||||
"y{"[^}]*"}" {yytext = yytext.substr(2, yyleng - 3); return 'ACTION';}
|
||||
[a-zA-Z_][a-zA-Z0-9_-]* {return 'NAME';}
|
||||
'"'([^"]|'\"')*'"' {return 'STRING_LIT';}
|
||||
"'"([^']|"\'")*"'" {return 'STRING_LIT';}
|
||||
"|" {return '|';}
|
||||
"["("\]"|[^\]])*"]" {return 'ANY_GROUP_REGEX';}
|
||||
"(" {return '(';}
|
||||
")" {return ')';}
|
||||
"+" {return '+';}
|
||||
"*" {return '*';}
|
||||
"?" {return '?';}
|
||||
"^" {return '^';}
|
||||
"/" {return '/';}
|
||||
"\\"[a-zA-Z0] {return 'ESCAPE_CHAR';}
|
||||
"$" {return '$';}
|
||||
"<<EOF>>" {return '$';}
|
||||
"." {return '.';}
|
||||
"%%" {return '%%';}
|
||||
"{"\d+(","\s?\d+|",")?"}" {return 'RANGE_REGEX';}
|
||||
/"{" %{if (yy.freshLine) { this.input('{'); return '{'; } else { this.unput('y'); }%}
|
||||
"}" %{return '}';%}
|
||||
"%{"(.|\n)*?"}%" {yytext = yytext.substr(2, yyleng - 4); return 'ACTION';}
|
||||
. {/* ignore bad characters */}
|
||||
<<EOF>> {return 'EOF';}
|
||||
|
||||
418
samples/Jison/ansic.jison
Normal file
418
samples/Jison/ansic.jison
Normal file
@@ -0,0 +1,418 @@
|
||||
%token IDENTIFIER CONSTANT STRING_LITERAL SIZEOF
|
||||
%token PTR_OP INC_OP DEC_OP LEFT_OP RIGHT_OP LE_OP GE_OP EQ_OP NE_OP
|
||||
%token AND_OP OR_OP MUL_ASSIGN DIV_ASSIGN MOD_ASSIGN ADD_ASSIGN
|
||||
%token SUB_ASSIGN LEFT_ASSIGN RIGHT_ASSIGN AND_ASSIGN
|
||||
%token XOR_ASSIGN OR_ASSIGN TYPE_NAME
|
||||
|
||||
%token TYPEDEF EXTERN STATIC AUTO REGISTER
|
||||
%token CHAR SHORT INT LONG SIGNED UNSIGNED FLOAT DOUBLE CONST VOLATILE VOID
|
||||
%token STRUCT UNION ENUM ELLIPSIS
|
||||
|
||||
%token CASE DEFAULT IF ELSE SWITCH WHILE DO FOR GOTO CONTINUE BREAK RETURN
|
||||
|
||||
%nonassoc IF_WITHOUT_ELSE
|
||||
%nonassoc ELSE
|
||||
|
||||
%start translation_unit
|
||||
%%
|
||||
|
||||
primary_expression
|
||||
: IDENTIFIER
|
||||
| CONSTANT
|
||||
| STRING_LITERAL
|
||||
| '(' expression ')'
|
||||
;
|
||||
|
||||
postfix_expression
|
||||
: primary_expression
|
||||
| postfix_expression '[' expression ']'
|
||||
| postfix_expression '(' ')'
|
||||
| postfix_expression '(' argument_expression_list ')'
|
||||
| postfix_expression '.' IDENTIFIER
|
||||
| postfix_expression PTR_OP IDENTIFIER
|
||||
| postfix_expression INC_OP
|
||||
| postfix_expression DEC_OP
|
||||
;
|
||||
|
||||
argument_expression_list
|
||||
: assignment_expression
|
||||
| argument_expression_list ',' assignment_expression
|
||||
;
|
||||
|
||||
unary_expression
|
||||
: postfix_expression
|
||||
| INC_OP unary_expression
|
||||
| DEC_OP unary_expression
|
||||
| unary_operator cast_expression
|
||||
| SIZEOF unary_expression
|
||||
| SIZEOF '(' type_name ')'
|
||||
;
|
||||
|
||||
unary_operator
|
||||
: '&'
|
||||
| '*'
|
||||
| '+'
|
||||
| '-'
|
||||
| '~'
|
||||
| '!'
|
||||
;
|
||||
|
||||
cast_expression
|
||||
: unary_expression
|
||||
| '(' type_name ')' cast_expression
|
||||
;
|
||||
|
||||
multiplicative_expression
|
||||
: cast_expression
|
||||
| multiplicative_expression '*' cast_expression
|
||||
| multiplicative_expression '/' cast_expression
|
||||
| multiplicative_expression '%' cast_expression
|
||||
;
|
||||
|
||||
additive_expression
|
||||
: multiplicative_expression
|
||||
| additive_expression '+' multiplicative_expression
|
||||
| additive_expression '-' multiplicative_expression
|
||||
;
|
||||
|
||||
shift_expression
|
||||
: additive_expression
|
||||
| shift_expression LEFT_OP additive_expression
|
||||
| shift_expression RIGHT_OP additive_expression
|
||||
;
|
||||
|
||||
relational_expression
|
||||
: shift_expression
|
||||
| relational_expression '<' shift_expression
|
||||
| relational_expression '>' shift_expression
|
||||
| relational_expression LE_OP shift_expression
|
||||
| relational_expression GE_OP shift_expression
|
||||
;
|
||||
|
||||
equality_expression
|
||||
: relational_expression
|
||||
| equality_expression EQ_OP relational_expression
|
||||
| equality_expression NE_OP relational_expression
|
||||
;
|
||||
|
||||
and_expression
|
||||
: equality_expression
|
||||
| and_expression '&' equality_expression
|
||||
;
|
||||
|
||||
exclusive_or_expression
|
||||
: and_expression
|
||||
| exclusive_or_expression '^' and_expression
|
||||
;
|
||||
|
||||
inclusive_or_expression
|
||||
: exclusive_or_expression
|
||||
| inclusive_or_expression '|' exclusive_or_expression
|
||||
;
|
||||
|
||||
logical_and_expression
|
||||
: inclusive_or_expression
|
||||
| logical_and_expression AND_OP inclusive_or_expression
|
||||
;
|
||||
|
||||
logical_or_expression
|
||||
: logical_and_expression
|
||||
| logical_or_expression OR_OP logical_and_expression
|
||||
;
|
||||
|
||||
conditional_expression
|
||||
: logical_or_expression
|
||||
| logical_or_expression '?' expression ':' conditional_expression
|
||||
;
|
||||
|
||||
assignment_expression
|
||||
: conditional_expression
|
||||
| unary_expression assignment_operator assignment_expression
|
||||
;
|
||||
|
||||
assignment_operator
|
||||
: '='
|
||||
| MUL_ASSIGN
|
||||
| DIV_ASSIGN
|
||||
| MOD_ASSIGN
|
||||
| ADD_ASSIGN
|
||||
| SUB_ASSIGN
|
||||
| LEFT_ASSIGN
|
||||
| RIGHT_ASSIGN
|
||||
| AND_ASSIGN
|
||||
| XOR_ASSIGN
|
||||
| OR_ASSIGN
|
||||
;
|
||||
|
||||
expression
|
||||
: assignment_expression
|
||||
| expression ',' assignment_expression
|
||||
;
|
||||
|
||||
constant_expression
|
||||
: conditional_expression
|
||||
;
|
||||
|
||||
declaration
|
||||
: declaration_specifiers ';'
|
||||
| declaration_specifiers init_declarator_list ';'
|
||||
;
|
||||
|
||||
declaration_specifiers
|
||||
: storage_class_specifier
|
||||
| storage_class_specifier declaration_specifiers
|
||||
| type_specifier
|
||||
| type_specifier declaration_specifiers
|
||||
| type_qualifier
|
||||
| type_qualifier declaration_specifiers
|
||||
;
|
||||
|
||||
init_declarator_list
|
||||
: init_declarator
|
||||
| init_declarator_list ',' init_declarator
|
||||
;
|
||||
|
||||
init_declarator
|
||||
: declarator
|
||||
| declarator '=' initializer
|
||||
;
|
||||
|
||||
storage_class_specifier
|
||||
: TYPEDEF
|
||||
| EXTERN
|
||||
| STATIC
|
||||
| AUTO
|
||||
| REGISTER
|
||||
;
|
||||
|
||||
type_specifier
|
||||
: VOID
|
||||
| CHAR
|
||||
| SHORT
|
||||
| INT
|
||||
| LONG
|
||||
| FLOAT
|
||||
| DOUBLE
|
||||
| SIGNED
|
||||
| UNSIGNED
|
||||
| struct_or_union_specifier
|
||||
| enum_specifier
|
||||
| TYPE_NAME
|
||||
;
|
||||
|
||||
struct_or_union_specifier
|
||||
: struct_or_union IDENTIFIER '{' struct_declaration_list '}'
|
||||
| struct_or_union '{' struct_declaration_list '}'
|
||||
| struct_or_union IDENTIFIER
|
||||
;
|
||||
|
||||
struct_or_union
|
||||
: STRUCT
|
||||
| UNION
|
||||
;
|
||||
|
||||
struct_declaration_list
|
||||
: struct_declaration
|
||||
| struct_declaration_list struct_declaration
|
||||
;
|
||||
|
||||
struct_declaration
|
||||
: specifier_qualifier_list struct_declarator_list ';'
|
||||
;
|
||||
|
||||
specifier_qualifier_list
|
||||
: type_specifier specifier_qualifier_list
|
||||
| type_specifier
|
||||
| type_qualifier specifier_qualifier_list
|
||||
| type_qualifier
|
||||
;
|
||||
|
||||
struct_declarator_list
|
||||
: struct_declarator
|
||||
| struct_declarator_list ',' struct_declarator
|
||||
;
|
||||
|
||||
struct_declarator
|
||||
: declarator
|
||||
| ':' constant_expression
|
||||
| declarator ':' constant_expression
|
||||
;
|
||||
|
||||
enum_specifier
|
||||
: ENUM '{' enumerator_list '}'
|
||||
| ENUM IDENTIFIER '{' enumerator_list '}'
|
||||
| ENUM IDENTIFIER
|
||||
;
|
||||
|
||||
enumerator_list
|
||||
: enumerator
|
||||
| enumerator_list ',' enumerator
|
||||
;
|
||||
|
||||
enumerator
|
||||
: IDENTIFIER
|
||||
| IDENTIFIER '=' constant_expression
|
||||
;
|
||||
|
||||
type_qualifier
|
||||
: CONST
|
||||
| VOLATILE
|
||||
;
|
||||
|
||||
declarator
|
||||
: pointer direct_declarator
|
||||
| direct_declarator
|
||||
;
|
||||
|
||||
direct_declarator
|
||||
: IDENTIFIER
|
||||
| '(' declarator ')'
|
||||
| direct_declarator '[' constant_expression ']'
|
||||
| direct_declarator '[' ']'
|
||||
| direct_declarator '(' parameter_type_list ')'
|
||||
| direct_declarator '(' identifier_list ')'
|
||||
| direct_declarator '(' ')'
|
||||
;
|
||||
|
||||
pointer
|
||||
: '*'
|
||||
| '*' type_qualifier_list
|
||||
| '*' pointer
|
||||
| '*' type_qualifier_list pointer
|
||||
;
|
||||
|
||||
type_qualifier_list
|
||||
: type_qualifier
|
||||
| type_qualifier_list type_qualifier
|
||||
;
|
||||
|
||||
|
||||
parameter_type_list
|
||||
: parameter_list
|
||||
| parameter_list ',' ELLIPSIS
|
||||
;
|
||||
|
||||
parameter_list
|
||||
: parameter_declaration
|
||||
| parameter_list ',' parameter_declaration
|
||||
;
|
||||
|
||||
parameter_declaration
|
||||
: declaration_specifiers declarator
|
||||
| declaration_specifiers abstract_declarator
|
||||
| declaration_specifiers
|
||||
;
|
||||
|
||||
identifier_list
|
||||
: IDENTIFIER
|
||||
| identifier_list ',' IDENTIFIER
|
||||
;
|
||||
|
||||
type_name
|
||||
: specifier_qualifier_list
|
||||
| specifier_qualifier_list abstract_declarator
|
||||
;
|
||||
|
||||
abstract_declarator
|
||||
: pointer
|
||||
| direct_abstract_declarator
|
||||
| pointer direct_abstract_declarator
|
||||
;
|
||||
|
||||
direct_abstract_declarator
|
||||
: '(' abstract_declarator ')'
|
||||
| '[' ']'
|
||||
| '[' constant_expression ']'
|
||||
| direct_abstract_declarator '[' ']'
|
||||
| direct_abstract_declarator '[' constant_expression ']'
|
||||
| '(' ')'
|
||||
| '(' parameter_type_list ')'
|
||||
| direct_abstract_declarator '(' ')'
|
||||
| direct_abstract_declarator '(' parameter_type_list ')'
|
||||
;
|
||||
|
||||
initializer
|
||||
: assignment_expression
|
||||
| '{' initializer_list '}'
|
||||
| '{' initializer_list ',' '}'
|
||||
;
|
||||
|
||||
initializer_list
|
||||
: initializer
|
||||
| initializer_list ',' initializer
|
||||
;
|
||||
|
||||
statement
|
||||
: labeled_statement
|
||||
| compound_statement
|
||||
| expression_statement
|
||||
| selection_statement
|
||||
| iteration_statement
|
||||
| jump_statement
|
||||
;
|
||||
|
||||
labeled_statement
|
||||
: IDENTIFIER ':' statement
|
||||
| CASE constant_expression ':' statement
|
||||
| DEFAULT ':' statement
|
||||
;
|
||||
|
||||
compound_statement
|
||||
: '{' '}'
|
||||
| '{' statement_list '}'
|
||||
| '{' declaration_list '}'
|
||||
| '{' declaration_list statement_list '}'
|
||||
;
|
||||
|
||||
declaration_list
|
||||
: declaration
|
||||
| declaration_list declaration
|
||||
;
|
||||
|
||||
statement_list
|
||||
: statement
|
||||
| statement_list statement
|
||||
;
|
||||
|
||||
expression_statement
|
||||
: ';'
|
||||
| expression ';'
|
||||
;
|
||||
|
||||
selection_statement
|
||||
: IF '(' expression ')' statement %prec IF_WITHOUT_ELSE
|
||||
| IF '(' expression ')' statement ELSE statement
|
||||
| SWITCH '(' expression ')' statement
|
||||
;
|
||||
|
||||
iteration_statement
|
||||
: WHILE '(' expression ')' statement
|
||||
| DO statement WHILE '(' expression ')' ';'
|
||||
| FOR '(' expression_statement expression_statement ')' statement
|
||||
| FOR '(' expression_statement expression_statement expression ')' statement
|
||||
;
|
||||
|
||||
jump_statement
|
||||
: GOTO IDENTIFIER ';'
|
||||
| CONTINUE ';'
|
||||
| BREAK ';'
|
||||
| RETURN ';'
|
||||
| RETURN expression ';'
|
||||
;
|
||||
|
||||
translation_unit
|
||||
: external_declaration
|
||||
| translation_unit external_declaration
|
||||
;
|
||||
|
||||
external_declaration
|
||||
: function_definition
|
||||
| declaration
|
||||
;
|
||||
|
||||
function_definition
|
||||
: declaration_specifiers declarator declaration_list compound_statement
|
||||
| declaration_specifiers declarator compound_statement
|
||||
| declarator declaration_list compound_statement
|
||||
| declarator compound_statement
|
||||
;
|
||||
84
samples/Jison/classy.jison
Normal file
84
samples/Jison/classy.jison
Normal file
@@ -0,0 +1,84 @@
|
||||
|
||||
/* description: ClassyLang grammar. Very classy. */
|
||||
/*
|
||||
To build parser:
|
||||
|
||||
$ ./bin/jison examples/classy.jison examples/classy.jisonlex
|
||||
|
||||
*/
|
||||
|
||||
|
||||
/* author: Zach Carter */
|
||||
|
||||
%right ASSIGN
|
||||
%left OR
|
||||
%nonassoc EQUALITY GREATER
|
||||
%left PLUS MINUS
|
||||
%left TIMES
|
||||
%right NOT
|
||||
%left DOT
|
||||
|
||||
%%
|
||||
|
||||
pgm
|
||||
: cdl MAIN LBRACE vdl el RBRACE ENDOFFILE
|
||||
;
|
||||
|
||||
cdl
|
||||
: c cdl
|
||||
|
|
||||
;
|
||||
|
||||
c
|
||||
: CLASS id EXTENDS id LBRACE vdl mdl RBRACE
|
||||
;
|
||||
|
||||
vdl
|
||||
: VAR t id SEMICOLON vdl
|
||||
|
|
||||
;
|
||||
|
||||
mdl
|
||||
: t id LPAREN t id RPAREN LBRACE vdl el RBRACE mdl
|
||||
|
|
||||
;
|
||||
|
||||
t
|
||||
: NATTYPE
|
||||
| id
|
||||
;
|
||||
|
||||
id
|
||||
: ID
|
||||
;
|
||||
|
||||
el
|
||||
: e SEMICOLON el
|
||||
| e SEMICOLON
|
||||
;
|
||||
|
||||
e
|
||||
: NATLITERAL
|
||||
| NUL
|
||||
| id
|
||||
| NEW id
|
||||
| THIS
|
||||
| IF LPAREN e RPAREN LBRACE el RBRACE ELSE LBRACE el RBRACE
|
||||
| FOR LPAREN e SEMICOLON e SEMICOLON e RPAREN LBRACE el RBRACE
|
||||
| READNAT LPAREN RPAREN
|
||||
| PRINTNAT LPAREN e RPAREN
|
||||
| e PLUS e
|
||||
| e MINUS e
|
||||
| e TIMES e
|
||||
| e EQUALITY e
|
||||
| e GREATER e
|
||||
| NOT e
|
||||
| e OR e
|
||||
| e DOT id
|
||||
| id ASSIGN e
|
||||
| e DOT id ASSIGN e
|
||||
| id LPAREN e RPAREN
|
||||
| e DOT id LPAREN e RPAREN
|
||||
| LPAREN e RPAREN
|
||||
;
|
||||
|
||||
145
samples/Jison/lex.jison
Normal file
145
samples/Jison/lex.jison
Normal file
@@ -0,0 +1,145 @@
|
||||
|
||||
// `%nonassoc` tells the parser compiler (JISON) that these tokens cannot occur more than once,
|
||||
// i.e. input like '//a' (tokens '/', '/' and 'a') is not a legal input while '/a' (tokens '/' and 'a')
|
||||
// *is* legal input for this grammar.
|
||||
|
||||
%nonassoc '/' '/!'
|
||||
|
||||
// Likewise for `%left`: this informs the LALR(1) grammar compiler (JISON) that these tokens
|
||||
// *can* occur repeatedly, e.g. 'a?*' and even 'a**' are considered legal inputs given this
|
||||
// grammar!
|
||||
//
|
||||
// Token `RANGE_REGEX` may seem the odd one out here but really isn't: given the `regex_base`
|
||||
// choice/rule `regex_base range_regex`, which is recursive, this grammar tells JISON that
|
||||
// any input matching a sequence like `regex_base range_regex range_regex` *is* legal.
|
||||
// If you do not want that to be legal, you MUST adjust the grammar rule set you match your
|
||||
// actual intent.
|
||||
|
||||
%left '*' '+' '?' RANGE_REGEX
|
||||
|
||||
|
||||
%%
|
||||
|
||||
lex
|
||||
: definitions include '%%' rules '%%' EOF
|
||||
{{ $$ = {macros: $1, rules: $4};
|
||||
if ($2) $$.actionInclude = $2;
|
||||
return $$; }}
|
||||
| definitions include '%%' rules EOF
|
||||
{{ $$ = {macros: $1, rules: $4};
|
||||
if ($2) $$.actionInclude = $2;
|
||||
return $$; }}
|
||||
;
|
||||
|
||||
include
|
||||
: action
|
||||
|
|
||||
;
|
||||
|
||||
definitions
|
||||
: definitions definition
|
||||
{ $$ = $1; $$.concat($2); }
|
||||
| definition
|
||||
{ $$ = [$1]; }
|
||||
;
|
||||
|
||||
definition
|
||||
: name regex
|
||||
{ $$ = [$1, $2]; }
|
||||
;
|
||||
|
||||
name
|
||||
: NAME
|
||||
{ $$ = yytext; }
|
||||
;
|
||||
|
||||
rules
|
||||
: rules rule
|
||||
{ $$ = $1; $$.push($2); }
|
||||
| rule
|
||||
{ $$ = [$1]; }
|
||||
;
|
||||
|
||||
rule
|
||||
: regex action
|
||||
{ $$ = [$1, $2]; }
|
||||
;
|
||||
|
||||
action
|
||||
: ACTION
|
||||
{ $$ = yytext; }
|
||||
;
|
||||
|
||||
regex
|
||||
: start_caret regex_list end_dollar
|
||||
{ $$ = $1+$2+$3; }
|
||||
;
|
||||
|
||||
start_caret
|
||||
: '^'
|
||||
{ $$ = '^'; }
|
||||
|
|
||||
{ $$ = ''; }
|
||||
;
|
||||
|
||||
end_dollar
|
||||
: '$'
|
||||
{ $$ = '$'; }
|
||||
|
|
||||
{ $$ = ''; }
|
||||
;
|
||||
|
||||
regex_list
|
||||
: regex_list '|' regex_chain
|
||||
{ $$ = $1+'|'+$3; }
|
||||
| regex_chain
|
||||
;
|
||||
|
||||
regex_chain
|
||||
: regex_chain regex_base
|
||||
{ $$ = $1+$2;}
|
||||
| regex_base
|
||||
{ $$ = $1;}
|
||||
;
|
||||
|
||||
regex_base
|
||||
: '(' regex_list ')'
|
||||
{ $$ = '('+$2+')'; }
|
||||
| regex_base '+'
|
||||
{ $$ = $1+'+'; }
|
||||
| regex_base '*'
|
||||
{ $$ = $1+'*'; }
|
||||
| regex_base '?'
|
||||
{ $$ = $1+'?'; }
|
||||
| '/' regex_base
|
||||
{ $$ = '(?=' + $regex_base + ')'; }
|
||||
| '/!' regex_base
|
||||
{ $$ = '(?!' + $regex_base + ')'; }
|
||||
| name_expansion
|
||||
| regex_base range_regex
|
||||
{ $$ = $1+$2; }
|
||||
| any_group_regex
|
||||
| '.'
|
||||
{ $$ = '.'; }
|
||||
| string
|
||||
;
|
||||
|
||||
name_expansion
|
||||
: '{' name '}'
|
||||
{{ $$ = '{'+$2+'}'; }}
|
||||
;
|
||||
|
||||
any_group_regex
|
||||
: ANY_GROUP_REGEX
|
||||
{ $$ = yytext; }
|
||||
;
|
||||
|
||||
range_regex
|
||||
: RANGE_REGEX
|
||||
{ $$ = yytext; }
|
||||
;
|
||||
|
||||
string
|
||||
: STRING_LIT
|
||||
{ $$ = yy.prepareString(yytext.substr(1, yyleng-2)); }
|
||||
;
|
||||
37
samples/Jolie/common.iol
Normal file
37
samples/Jolie/common.iol
Normal file
@@ -0,0 +1,37 @@
|
||||
include "types/Binding.iol"
|
||||
|
||||
constants {
|
||||
Location_Exam = "socket://localhost:8000"
|
||||
}
|
||||
|
||||
type StartExamRequest:void {
|
||||
.examName:string
|
||||
.studentName:string
|
||||
.student:Binding
|
||||
}
|
||||
|
||||
type MakeQuestionRequest:void {
|
||||
.question:string
|
||||
.examName:string
|
||||
.studentName:string
|
||||
}
|
||||
|
||||
type DecisionMessage:void {
|
||||
.studentName:string
|
||||
.examName:string
|
||||
}
|
||||
|
||||
interface ExamInterface {
|
||||
OneWay:
|
||||
startExam(StartExamRequest),
|
||||
pass(DecisionMessage), fail(DecisionMessage)
|
||||
RequestResponse:
|
||||
makeQuestion(MakeQuestionRequest)(int)
|
||||
}
|
||||
|
||||
interface StudentInterface {
|
||||
OneWay:
|
||||
sendMessage(string)
|
||||
RequestResponse:
|
||||
makeQuestion(MakeQuestionRequest)(int)
|
||||
}
|
||||
39
samples/Jolie/exam.ol
Normal file
39
samples/Jolie/exam.ol
Normal file
@@ -0,0 +1,39 @@
|
||||
include "common.iol"
|
||||
|
||||
cset {
|
||||
studentName:
|
||||
StartExamRequest.studentName
|
||||
DecisionMessage.studentName
|
||||
MakeQuestionRequest.studentName,
|
||||
examName:
|
||||
StartExamRequest.examName
|
||||
DecisionMessage.examName
|
||||
MakeQuestionRequest.examName
|
||||
}
|
||||
|
||||
execution { concurrent }
|
||||
|
||||
outputPort Student {
|
||||
Interfaces: StudentInterface
|
||||
}
|
||||
|
||||
inputPort ExamInput {
|
||||
Location: Location_Exam
|
||||
Protocol: sodep
|
||||
Interfaces: ExamInterface
|
||||
}
|
||||
|
||||
main
|
||||
{
|
||||
startExam( examRequest );
|
||||
Student << examRequest.student;
|
||||
makeQuestion( question )( answer ) {
|
||||
makeQuestion@Student( question )( answer )
|
||||
};
|
||||
[ pass( message ) ] {
|
||||
sendMessage@Student( "You passed!" )
|
||||
}
|
||||
[ fail( message ) ] {
|
||||
sendMessage@Student( "You failed!" )
|
||||
}
|
||||
}
|
||||
26
samples/Jolie/examiner.ol
Normal file
26
samples/Jolie/examiner.ol
Normal file
@@ -0,0 +1,26 @@
|
||||
include "common.iol"
|
||||
include "ui/swing_ui.iol"
|
||||
include "console.iol"
|
||||
|
||||
outputPort Exam {
|
||||
Location: Location_Exam
|
||||
Protocol: sodep
|
||||
Interfaces: ExamInterface
|
||||
}
|
||||
|
||||
main
|
||||
{
|
||||
question.studentName = "John";
|
||||
question.examName = "SPLG";
|
||||
question.question = "Random question";
|
||||
makeQuestion@Exam( question )( answer );
|
||||
showYesNoQuestionDialog@SwingUI( "Do you want to accept answer " + answer + " ?" )( decision );
|
||||
|
||||
message.studentName = "John";
|
||||
message.examName = "SPLG";
|
||||
if ( decision == 0 ) {
|
||||
pass@Exam( message )
|
||||
} else {
|
||||
fail@Exam( message )
|
||||
}
|
||||
}
|
||||
84
samples/Jolie/hanoi.ol
Normal file
84
samples/Jolie/hanoi.ol
Normal file
@@ -0,0 +1,84 @@
|
||||
// https://github.com/jolie/website/blob/master/docs/documentation/locations/code/local.ol
|
||||
|
||||
include "runtime.iol"
|
||||
include "string_utils.iol"
|
||||
|
||||
type HanoiRequest: void{
|
||||
.src: string
|
||||
.aux: string
|
||||
.dst: string
|
||||
.n: int
|
||||
.sid?: string
|
||||
}
|
||||
|
||||
type HanoiReponse: void {
|
||||
.move?: string
|
||||
}
|
||||
|
||||
interface LocalOperations{
|
||||
RequestResponse:
|
||||
hanoiSolver( HanoiRequest )( HanoiReponse )
|
||||
}
|
||||
|
||||
interface ExternalOperations{
|
||||
RequestResponse:
|
||||
hanoi( HanoiRequest )( string )
|
||||
}
|
||||
|
||||
outputPort Self{
|
||||
Interfaces: LocalOperations
|
||||
}
|
||||
|
||||
inputPort Self {
|
||||
Location: "local"
|
||||
Interfaces: LocalOperations
|
||||
}
|
||||
|
||||
inputPort PowerService {
|
||||
Location: "socket://localhost:8000"
|
||||
Protocol: http{
|
||||
.format = "html"
|
||||
}
|
||||
Interfaces: ExternalOperations
|
||||
}
|
||||
|
||||
execution { concurrent }
|
||||
|
||||
init
|
||||
{
|
||||
getLocalLocation@Runtime()( Self.location )
|
||||
}
|
||||
|
||||
main
|
||||
{
|
||||
[ hanoi( request )( response ){
|
||||
getRandomUUID@StringUtils()(request.sid);
|
||||
hanoiSolver@Self( request )( subRes );
|
||||
response = subRes.move
|
||||
}]{ nullProcess }
|
||||
|
||||
[ hanoiSolver( request )( response ){
|
||||
if ( request.n > 0 ){
|
||||
subReq.n = request.n;
|
||||
subReq.n--;
|
||||
with( request ){
|
||||
subReq.aux = .dst;
|
||||
subReq.dst = .aux;
|
||||
subReq.src = .src;
|
||||
subReq.sid = .sid
|
||||
};
|
||||
hanoiSolver@Self( subReq )( response );
|
||||
response.move += "<br>" +
|
||||
++global.counters.(request.sid) +
|
||||
") Move from " + request.src +
|
||||
" to " + request.dst + ";";
|
||||
with ( request ){
|
||||
subReq.src = .aux;
|
||||
subReq.aux = .src;
|
||||
subReq.dst = .dst
|
||||
};
|
||||
hanoiSolver@Self( subReq )( subRes );
|
||||
response.move += subRes.move
|
||||
}
|
||||
}]{ nullProcess }
|
||||
}
|
||||
29
samples/Jolie/student.ol
Normal file
29
samples/Jolie/student.ol
Normal file
@@ -0,0 +1,29 @@
|
||||
include "common.iol"
|
||||
include "ui/swing_ui.iol"
|
||||
include "console.iol"
|
||||
|
||||
outputPort Exam {
|
||||
Location: Location_Exam
|
||||
Protocol: sodep
|
||||
Interfaces: ExamInterface
|
||||
}
|
||||
|
||||
inputPort StudentInput {
|
||||
Location: "socket://localhost:8001/"
|
||||
Protocol: sodep
|
||||
Interfaces: StudentInterface
|
||||
}
|
||||
|
||||
main
|
||||
{
|
||||
request.studentName = "John";
|
||||
request.examName = "SPLG";
|
||||
request.student.location = "socket://localhost:8001/";
|
||||
request.student.protocol = "sodep";
|
||||
startExam@Exam( request );
|
||||
makeQuestion( question )( answer ) {
|
||||
showYesNoQuestionDialog@SwingUI( question.question )( answer )
|
||||
};
|
||||
sendMessage( message );
|
||||
println@Console( message )()
|
||||
}
|
||||
23
samples/KiCad Layout/C_Disc_D3_P2.5.kicad_mod
Normal file
23
samples/KiCad Layout/C_Disc_D3_P2.5.kicad_mod
Normal file
@@ -0,0 +1,23 @@
|
||||
(module footprints:C_Disc_D3_P2.5 (layer F.Cu) (tedit 0)
|
||||
(descr "Capacitor 3mm Disc, Pitch 2.5mm")
|
||||
(tags Capacitor)
|
||||
(fp_text reference C1 (at 1.25 -2.5) (layer F.SilkS)
|
||||
(effects (font (size 1 1) (thickness 0.15)))
|
||||
)
|
||||
(fp_text value C_100nF (at 1.25 2.5) (layer F.Fab)
|
||||
(effects (font (size 1 1) (thickness 0.15)))
|
||||
)
|
||||
(fp_line (start -0.9 -1.5) (end 3.4 -1.5) (layer F.CrtYd) (width 0.05))
|
||||
(fp_line (start 3.4 -1.5) (end 3.4 1.5) (layer F.CrtYd) (width 0.05))
|
||||
(fp_line (start 3.4 1.5) (end -0.9 1.5) (layer F.CrtYd) (width 0.05))
|
||||
(fp_line (start -0.9 1.5) (end -0.9 -1.5) (layer F.CrtYd) (width 0.05))
|
||||
(fp_line (start -0.25 -1.25) (end 2.75 -1.25) (layer F.SilkS) (width 0.15))
|
||||
(fp_line (start 2.75 1.25) (end -0.25 1.25) (layer F.SilkS) (width 0.15))
|
||||
(pad 1 thru_hole rect (at 0 0) (size 1.3 1.3) (drill 0.8) (layers *.Cu *.Mask F.SilkS))
|
||||
(pad 2 thru_hole circle (at 2.5 0) (size 1.3 1.3) (drill 0.8001) (layers *.Cu *.Mask F.SilkS))
|
||||
(model Capacitors_ThroughHole.3dshapes/C_Disc_D3_P2.5.wrl
|
||||
(at (xyz 0.0492126 0 0))
|
||||
(scale (xyz 1 1 1))
|
||||
(rotate (xyz 0 0 0))
|
||||
)
|
||||
)
|
||||
344
samples/KiCad Layout/Conn_Poncho_SinBorde.kicad_mod
Normal file
344
samples/KiCad Layout/Conn_Poncho_SinBorde.kicad_mod
Normal file
@@ -0,0 +1,344 @@
|
||||
(module Conn_Poncho_SinBorde (layer F.Cu) (tedit 560F0DC0)
|
||||
(tags "CONN Poncho")
|
||||
(fp_text reference XA? (at -0.254 -3.175) (layer F.SilkS)
|
||||
(effects (font (size 0.8 0.8) (thickness 0.12)))
|
||||
)
|
||||
(fp_text value Conn_Poncho_SinBorde (at -1.905 51.181) (layer F.SilkS) hide
|
||||
(effects (font (size 1.016 1.016) (thickness 0.2032)))
|
||||
)
|
||||
(fp_text user GPIO8 (at -64.516 48.26) (layer F.SilkS)
|
||||
(effects (font (size 1 1) (thickness 0.2)))
|
||||
)
|
||||
(fp_text user GPIO7 (at -64.516 45.72) (layer F.SilkS)
|
||||
(effects (font (size 1 1) (thickness 0.2)))
|
||||
)
|
||||
(fp_text user GPIO5 (at -64.516 43.18) (layer F.SilkS)
|
||||
(effects (font (size 1 1) (thickness 0.2)))
|
||||
)
|
||||
(fp_text user GPIO3 (at -64.516 40.64) (layer F.SilkS)
|
||||
(effects (font (size 1 1) (thickness 0.2)))
|
||||
)
|
||||
(fp_text user GPIO1 (at -64.516 38.1) (layer F.SilkS)
|
||||
(effects (font (size 1 1) (thickness 0.2)))
|
||||
)
|
||||
(fp_text user LCD1 (at -65.024 35.56) (layer F.SilkS)
|
||||
(effects (font (size 1 1) (thickness 0.2)))
|
||||
)
|
||||
(fp_text user LCD2 (at -65.024 33.02) (layer F.SilkS)
|
||||
(effects (font (size 1 1) (thickness 0.2)))
|
||||
)
|
||||
(fp_text user LCD3 (at -65.024 30.48) (layer F.SilkS)
|
||||
(effects (font (size 1 1) (thickness 0.2)))
|
||||
)
|
||||
(fp_text user LCD_RS (at -64.008 27.94) (layer F.SilkS)
|
||||
(effects (font (size 1 1) (thickness 0.2)))
|
||||
)
|
||||
(fp_text user LCD4 (at -65.024 25.4) (layer F.SilkS)
|
||||
(effects (font (size 1 1) (thickness 0.2)))
|
||||
)
|
||||
(fp_text user SPI_SCK (at -63.754 22.86) (layer F.SilkS)
|
||||
(effects (font (size 1 1) (thickness 0.2)))
|
||||
)
|
||||
(fp_text user SPI_MISO (at -63.5 20.32) (layer F.SilkS)
|
||||
(effects (font (size 1 1) (thickness 0.2)))
|
||||
)
|
||||
(fp_text user TXD1 (at -65.024 17.78) (layer F.SilkS)
|
||||
(effects (font (size 1 1) (thickness 0.2)))
|
||||
)
|
||||
(fp_text user TXD0 (at -65.024 15.24) (layer F.SilkS)
|
||||
(effects (font (size 1 1) (thickness 0.2)))
|
||||
)
|
||||
(fp_text user MDIO (at -65.024 12.7) (layer F.SilkS)
|
||||
(effects (font (size 1 1) (thickness 0.2)))
|
||||
)
|
||||
(fp_text user CRS_DV (at -64.008 10.16) (layer F.SilkS)
|
||||
(effects (font (size 1 1) (thickness 0.2)))
|
||||
)
|
||||
(fp_text user MDC (at -65.278 7.62) (layer F.SilkS)
|
||||
(effects (font (size 1 1) (thickness 0.2)))
|
||||
)
|
||||
(fp_text user TX_EN (at -64.77 5.08) (layer F.SilkS)
|
||||
(effects (font (size 1 1) (thickness 0.2)))
|
||||
)
|
||||
(fp_text user RXD1 (at -65.024 2.54) (layer F.SilkS)
|
||||
(effects (font (size 1 1) (thickness 0.2)))
|
||||
)
|
||||
(fp_text user +5V (at -65.532 0) (layer F.SilkS)
|
||||
(effects (font (size 1 1) (thickness 0.2)))
|
||||
)
|
||||
(fp_text user GND (at -74.168 48.006) (layer F.SilkS)
|
||||
(effects (font (size 1 1) (thickness 0.2)))
|
||||
)
|
||||
(fp_text user GND (at -74.168 45.72) (layer F.SilkS)
|
||||
(effects (font (size 1 1) (thickness 0.2)))
|
||||
)
|
||||
(fp_text user GPIO6 (at -74.93 43.18) (layer F.SilkS)
|
||||
(effects (font (size 1 0.9) (thickness 0.2)))
|
||||
)
|
||||
(fp_text user GPIO4 (at -74.93 40.64) (layer F.SilkS)
|
||||
(effects (font (size 1 0.9) (thickness 0.2)))
|
||||
)
|
||||
(fp_text user GPIO2 (at -74.93 38.1) (layer F.SilkS)
|
||||
(effects (font (size 1 0.9) (thickness 0.2)))
|
||||
)
|
||||
(fp_text user GPIO0 (at -74.93 35.56) (layer F.SilkS)
|
||||
(effects (font (size 1 0.9) (thickness 0.2)))
|
||||
)
|
||||
(fp_text user GND (at -74.168 33.02) (layer F.SilkS)
|
||||
(effects (font (size 1 1) (thickness 0.2)))
|
||||
)
|
||||
(fp_text user GND (at -74.168 30.48) (layer F.SilkS)
|
||||
(effects (font (size 1 1) (thickness 0.2)))
|
||||
)
|
||||
(fp_text user LCD_EN (at -74.676 27.686) (layer F.SilkS)
|
||||
(effects (font (size 1 0.7) (thickness 0.17)))
|
||||
)
|
||||
(fp_text user SPI_MOSI (at -74.93 25.146) (layer F.SilkS)
|
||||
(effects (font (size 1 0.7) (thickness 0.17)))
|
||||
)
|
||||
(fp_text user GND (at -74.168 22.86) (layer F.SilkS)
|
||||
(effects (font (size 1 1) (thickness 0.2)))
|
||||
)
|
||||
(fp_text user GND (at -74.168 20.32) (layer F.SilkS)
|
||||
(effects (font (size 1 1) (thickness 0.2)))
|
||||
)
|
||||
(fp_text user REF_CLK (at -74.93 17.78) (layer F.SilkS)
|
||||
(effects (font (size 0.9 0.7) (thickness 0.175)))
|
||||
)
|
||||
(fp_text user GND (at -74.168 15.24) (layer F.SilkS)
|
||||
(effects (font (size 1 1) (thickness 0.2)))
|
||||
)
|
||||
(fp_text user GND (at -74.168 12.7) (layer F.SilkS)
|
||||
(effects (font (size 1 1) (thickness 0.2)))
|
||||
)
|
||||
(fp_text user GND (at -74.168 7.62) (layer F.SilkS)
|
||||
(effects (font (size 1 1) (thickness 0.2)))
|
||||
)
|
||||
(fp_text user RXD0 (at -74.676 10.16) (layer F.SilkS)
|
||||
(effects (font (size 1 1) (thickness 0.2)))
|
||||
)
|
||||
(fp_text user GND (at -74.168 5.08) (layer F.SilkS)
|
||||
(effects (font (size 1 1) (thickness 0.2)))
|
||||
)
|
||||
(fp_text user GND (at -74.168 2.54) (layer F.SilkS)
|
||||
(effects (font (size 1 1) (thickness 0.2)))
|
||||
)
|
||||
(fp_text user +3.3V (at -74.93 0) (layer F.SilkS)
|
||||
(effects (font (size 1 1) (thickness 0.2)))
|
||||
)
|
||||
(fp_text user GND (at 5.588 48.26) (layer F.SilkS)
|
||||
(effects (font (size 1 1) (thickness 0.2)))
|
||||
)
|
||||
(fp_text user GND (at 5.588 45.72) (layer F.SilkS)
|
||||
(effects (font (size 1 1) (thickness 0.2)))
|
||||
)
|
||||
(fp_text user T_F1 (at 5.588 43.18) (layer F.SilkS)
|
||||
(effects (font (size 0.9 0.9) (thickness 0.18)))
|
||||
)
|
||||
(fp_text user T_C2 (at 5.588 40.64) (layer F.SilkS)
|
||||
(effects (font (size 0.9 0.9) (thickness 0.18)))
|
||||
)
|
||||
(fp_text user GND (at 5.588 38.1) (layer F.SilkS)
|
||||
(effects (font (size 1 1) (thickness 0.2)))
|
||||
)
|
||||
(fp_text user GND (at 5.334 35.56) (layer F.SilkS)
|
||||
(effects (font (size 1 1) (thickness 0.2)))
|
||||
)
|
||||
(fp_text user GND (at 5.588 33.02) (layer F.SilkS)
|
||||
(effects (font (size 1 1) (thickness 0.2)))
|
||||
)
|
||||
(fp_text user GND (at 5.588 30.48) (layer F.SilkS)
|
||||
(effects (font (size 1 1) (thickness 0.2)))
|
||||
)
|
||||
(fp_text user GND (at 5.588 27.94) (layer F.SilkS)
|
||||
(effects (font (size 1 1) (thickness 0.2)))
|
||||
)
|
||||
(fp_text user GND (at 5.588 25.4) (layer F.SilkS)
|
||||
(effects (font (size 1 1) (thickness 0.2)))
|
||||
)
|
||||
(fp_text user GND (at 5.588 22.86) (layer F.SilkS)
|
||||
(effects (font (size 1 1) (thickness 0.2)))
|
||||
)
|
||||
(fp_text user GNDA (at 5.588 20.32) (layer F.SilkS)
|
||||
(effects (font (size 0.76 0.76) (thickness 0.19)))
|
||||
)
|
||||
(fp_text user GNDA (at 5.588 17.78) (layer F.SilkS)
|
||||
(effects (font (size 0.76 0.76) (thickness 0.19)))
|
||||
)
|
||||
(fp_text user GNDA (at 5.588 15.24) (layer F.SilkS)
|
||||
(effects (font (size 0.76 0.76) (thickness 0.19)))
|
||||
)
|
||||
(fp_text user GNDA (at 5.588 12.7) (layer F.SilkS)
|
||||
(effects (font (size 0.76 0.76) (thickness 0.19)))
|
||||
)
|
||||
(fp_text user GNDA (at 5.588 10.16) (layer F.SilkS)
|
||||
(effects (font (size 0.76 0.76) (thickness 0.19)))
|
||||
)
|
||||
(fp_text user GNDA (at 5.588 7.62) (layer F.SilkS)
|
||||
(effects (font (size 0.76 0.76) (thickness 0.19)))
|
||||
)
|
||||
(fp_text user WAKEUP (at 5.588 5.334) (layer F.SilkS)
|
||||
(effects (font (size 1 0.5) (thickness 0.125)))
|
||||
)
|
||||
(fp_text user GND (at 5.588 3.048) (layer F.SilkS)
|
||||
(effects (font (size 1 1) (thickness 0.2)))
|
||||
)
|
||||
(fp_text user +5V (at 5.588 0) (layer F.SilkS)
|
||||
(effects (font (size 1 1) (thickness 0.2)))
|
||||
)
|
||||
(fp_text user T_COL0 (at -4.064 48.26) (layer F.SilkS)
|
||||
(effects (font (size 1 1) (thickness 0.2)))
|
||||
)
|
||||
(fp_text user T_FIL2 (at -3.81 45.72) (layer F.SilkS)
|
||||
(effects (font (size 1 1) (thickness 0.2)))
|
||||
)
|
||||
(fp_text user T_FIL3 (at -3.81 43.18) (layer F.SilkS)
|
||||
(effects (font (size 1 1) (thickness 0.2)))
|
||||
)
|
||||
(fp_text user T_FIL0 (at -3.81 40.64) (layer F.SilkS)
|
||||
(effects (font (size 1 1) (thickness 0.2)))
|
||||
)
|
||||
(fp_text user T_COL1 (at -4.064 38.1) (layer F.SilkS)
|
||||
(effects (font (size 1 1) (thickness 0.2)))
|
||||
)
|
||||
(fp_text user CAN_TD (at -4.318 35.56) (layer F.SilkS)
|
||||
(effects (font (size 1 1) (thickness 0.2)))
|
||||
)
|
||||
(fp_text user CAN_RD (at -4.318 33.02) (layer F.SilkS)
|
||||
(effects (font (size 1 1) (thickness 0.2)))
|
||||
)
|
||||
(fp_text user 232_TX (at -4.318 30.48) (layer F.SilkS)
|
||||
(effects (font (size 1 1) (thickness 0.2)))
|
||||
)
|
||||
(fp_text user 232_RX (at -4.318 27.94) (layer F.SilkS)
|
||||
(effects (font (size 1 1) (thickness 0.2)))
|
||||
)
|
||||
(fp_text user I2C_SCL (at -4.572 25.4) (layer F.SilkS)
|
||||
(effects (font (size 1 1) (thickness 0.2)))
|
||||
)
|
||||
(fp_text user I2C_SDA (at -4.572 22.86) (layer F.SilkS)
|
||||
(effects (font (size 1 1) (thickness 0.2)))
|
||||
)
|
||||
(fp_text user VDDA (at -3.302 20.32) (layer F.SilkS)
|
||||
(effects (font (size 1 1) (thickness 0.2)))
|
||||
)
|
||||
(fp_text user DAC (at -3.048 17.78) (layer F.SilkS)
|
||||
(effects (font (size 1 1) (thickness 0.2)))
|
||||
)
|
||||
(fp_text user CH1 (at -3.048 15.24) (layer F.SilkS)
|
||||
(effects (font (size 1 1) (thickness 0.2)))
|
||||
)
|
||||
(fp_text user CH2 (at -3.048 12.7) (layer F.SilkS)
|
||||
(effects (font (size 1 1) (thickness 0.2)))
|
||||
)
|
||||
(fp_text user CH3 (at -3.048 10.16) (layer F.SilkS)
|
||||
(effects (font (size 1 1) (thickness 0.2)))
|
||||
)
|
||||
(fp_text user GNDA (at -3.556 7.62) (layer F.SilkS)
|
||||
(effects (font (size 1 1) (thickness 0.2)))
|
||||
)
|
||||
(fp_text user ISP (at -2.794 5.08) (layer F.SilkS)
|
||||
(effects (font (size 1 1) (thickness 0.2)))
|
||||
)
|
||||
(fp_text user RESET (at -3.81 2.54) (layer F.SilkS)
|
||||
(effects (font (size 1 1) (thickness 0.2)))
|
||||
)
|
||||
(fp_text user CIAA-P2 (at -69.85 -2.032) (layer F.SilkS)
|
||||
(effects (font (size 0.8 0.8) (thickness 0.12)))
|
||||
)
|
||||
(fp_text user CIAA-P1 (at 1.27 -2.032) (layer F.SilkS)
|
||||
(effects (font (size 0.8 0.8) (thickness 0.12)))
|
||||
)
|
||||
(fp_text user +3.3V (at -3.81 0) (layer F.SilkS)
|
||||
(effects (font (size 1 1) (thickness 0.2)))
|
||||
)
|
||||
(fp_line (start -72.39 0) (end -72.39 -1.27) (layer F.SilkS) (width 0.15))
|
||||
(fp_line (start -72.39 -1.27) (end -67.31 -1.27) (layer F.SilkS) (width 0.15))
|
||||
(fp_line (start -67.31 -1.27) (end -67.31 49.53) (layer F.SilkS) (width 0.15))
|
||||
(fp_line (start -67.31 49.53) (end -72.39 49.53) (layer F.SilkS) (width 0.15))
|
||||
(fp_line (start -72.39 49.53) (end -72.39 0) (layer F.SilkS) (width 0.15))
|
||||
(fp_line (start -1.27 49.53) (end -1.27 -1.27) (layer F.SilkS) (width 0.15))
|
||||
(fp_line (start 3.81 49.53) (end 3.81 -1.27) (layer F.SilkS) (width 0.15))
|
||||
(fp_line (start 3.81 49.53) (end -1.27 49.53) (layer F.SilkS) (width 0.15))
|
||||
(fp_line (start 3.81 -1.27) (end -1.27 -1.27) (layer F.SilkS) (width 0.15))
|
||||
(pad 1 thru_hole rect (at 0 0 270) (size 1.524 2) (drill 1.016) (layers *.Cu *.Mask F.SilkS))
|
||||
(pad 2 thru_hole oval (at 2.54 0 270) (size 1.524 2) (drill 1.016) (layers *.Cu *.Mask F.SilkS))
|
||||
(pad 11 thru_hole oval (at 0 12.7 270) (size 1.524 2) (drill 1.016) (layers *.Cu *.Mask F.SilkS))
|
||||
(pad 4 thru_hole oval (at 2.54 2.54 270) (size 1.524 2) (drill 1.016) (layers *.Cu *.Mask F.SilkS))
|
||||
(pad 13 thru_hole oval (at 0 15.24 270) (size 1.524 2) (drill 1.016) (layers *.Cu *.Mask F.SilkS))
|
||||
(pad 6 thru_hole oval (at 2.54 5.08 270) (size 1.524 2) (drill 1.016) (layers *.Cu *.Mask F.SilkS))
|
||||
(pad 15 thru_hole oval (at 0 17.78 270) (size 1.524 2) (drill 1.016) (layers *.Cu *.Mask F.SilkS))
|
||||
(pad 8 thru_hole oval (at 2.54 7.62 270) (size 1.524 2) (drill 1.016) (layers *.Cu *.Mask F.SilkS))
|
||||
(pad 17 thru_hole oval (at 0 20.32 270) (size 1.524 2) (drill 1.016) (layers *.Cu *.Mask F.SilkS))
|
||||
(pad 10 thru_hole oval (at 2.54 10.16 270) (size 1.524 2) (drill 1.016) (layers *.Cu *.Mask F.SilkS))
|
||||
(pad 19 thru_hole oval (at 0 22.86 270) (size 1.524 2) (drill 1.016) (layers *.Cu *.Mask F.SilkS))
|
||||
(pad 12 thru_hole oval (at 2.54 12.7 270) (size 1.524 2) (drill 1.016) (layers *.Cu *.Mask F.SilkS))
|
||||
(pad 21 thru_hole oval (at 0 25.4 270) (size 1.524 2) (drill 1.016) (layers *.Cu *.Mask F.SilkS))
|
||||
(pad 14 thru_hole oval (at 2.54 15.24 270) (size 1.524 2) (drill 1.016) (layers *.Cu *.Mask F.SilkS))
|
||||
(pad 23 thru_hole oval (at 0 27.94 270) (size 1.524 2) (drill 1.016) (layers *.Cu *.Mask F.SilkS))
|
||||
(pad 16 thru_hole oval (at 2.54 17.78 270) (size 1.524 2) (drill 1.016) (layers *.Cu *.Mask F.SilkS))
|
||||
(pad 25 thru_hole oval (at 0 30.48 270) (size 1.524 2) (drill 1.016) (layers *.Cu *.Mask F.SilkS))
|
||||
(pad 18 thru_hole oval (at 2.54 20.32 270) (size 1.524 2) (drill 1.016) (layers *.Cu *.Mask F.SilkS))
|
||||
(pad 27 thru_hole oval (at 0 33.02 270) (size 1.524 2) (drill 1.016) (layers *.Cu *.Mask F.SilkS))
|
||||
(pad 20 thru_hole oval (at 2.54 22.86 270) (size 1.524 2) (drill 1.016) (layers *.Cu *.Mask F.SilkS))
|
||||
(pad 29 thru_hole oval (at 0 35.56 270) (size 1.524 2) (drill 1.016) (layers *.Cu *.Mask F.SilkS))
|
||||
(pad 22 thru_hole oval (at 2.54 25.4 270) (size 1.524 2) (drill 1.016) (layers *.Cu *.Mask F.SilkS))
|
||||
(pad 31 thru_hole oval (at 0 38.1 270) (size 1.524 2) (drill 1.016) (layers *.Cu *.Mask F.SilkS))
|
||||
(pad 24 thru_hole oval (at 2.54 27.94 270) (size 1.524 2) (drill 1.016) (layers *.Cu *.Mask F.SilkS))
|
||||
(pad 26 thru_hole oval (at 2.54 30.48 270) (size 1.524 2) (drill 1.016) (layers *.Cu *.Mask F.SilkS))
|
||||
(pad 33 thru_hole oval (at 0 40.64 270) (size 1.524 2) (drill 1.016) (layers *.Cu *.Mask F.SilkS))
|
||||
(pad 28 thru_hole oval (at 2.54 33.02 270) (size 1.524 2) (drill 1.016) (layers *.Cu *.Mask F.SilkS))
|
||||
(pad 32 thru_hole oval (at 2.54 38.1 270) (size 1.524 2) (drill 1.016) (layers *.Cu *.Mask F.SilkS))
|
||||
(pad 34 thru_hole oval (at 2.54 40.64 270) (size 1.524 2) (drill 1.016) (layers *.Cu *.Mask F.SilkS))
|
||||
(pad 36 thru_hole oval (at 2.54 43.18 270) (size 1.524 2) (drill 1.016) (layers *.Cu *.Mask F.SilkS))
|
||||
(pad 38 thru_hole oval (at 2.54 45.72 270) (size 1.524 2) (drill 1.016) (layers *.Cu *.Mask F.SilkS))
|
||||
(pad 35 thru_hole oval (at 0 43.18 270) (size 1.524 2) (drill 1.016) (layers *.Cu *.Mask F.SilkS))
|
||||
(pad 37 thru_hole oval (at 0 45.72 270) (size 1.524 2) (drill 1.016) (layers *.Cu *.Mask F.SilkS))
|
||||
(pad 3 thru_hole oval (at 0 2.54 270) (size 1.524 2) (drill 1.016) (layers *.Cu *.Mask F.SilkS))
|
||||
(pad 5 thru_hole oval (at 0 5.08 270) (size 1.524 2) (drill 1.016) (layers *.Cu *.Mask F.SilkS))
|
||||
(pad 7 thru_hole oval (at 0 7.62 270) (size 1.524 2) (drill 1.016) (layers *.Cu *.Mask F.SilkS))
|
||||
(pad 9 thru_hole oval (at 0 10.16 270) (size 1.524 2) (drill 1.016) (layers *.Cu *.Mask F.SilkS))
|
||||
(pad 39 thru_hole oval (at 0 48.26 270) (size 1.524 2) (drill 1.016) (layers *.Cu *.Mask F.SilkS))
|
||||
(pad 40 thru_hole oval (at 2.54 48.26 270) (size 1.524 2) (drill 1.016) (layers *.Cu *.Mask F.SilkS))
|
||||
(pad 30 thru_hole oval (at 2.54 35.56 270) (size 1.524 2) (drill 1.016) (layers *.Cu *.Mask F.SilkS))
|
||||
(pad 41 thru_hole rect (at -71.12 0 270) (size 1.524 2) (drill 1.016) (layers *.Cu *.Mask F.SilkS))
|
||||
(pad 42 thru_hole oval (at -68.58 0 270) (size 1.524 2) (drill 1.016) (layers *.Cu *.Mask F.SilkS))
|
||||
(pad 43 thru_hole oval (at -71.12 2.54 270) (size 1.524 2) (drill 1.016) (layers *.Cu *.Mask F.SilkS))
|
||||
(pad 44 thru_hole oval (at -68.58 2.54 270) (size 1.524 2) (drill 1.016) (layers *.Cu *.Mask F.SilkS))
|
||||
(pad 45 thru_hole oval (at -71.12 5.08 270) (size 1.524 2) (drill 1.016) (layers *.Cu *.Mask F.SilkS))
|
||||
(pad 46 thru_hole oval (at -68.58 5.08 270) (size 1.524 2) (drill 1.016) (layers *.Cu *.Mask F.SilkS))
|
||||
(pad 47 thru_hole oval (at -71.12 7.62 270) (size 1.524 2) (drill 1.016) (layers *.Cu *.Mask F.SilkS))
|
||||
(pad 48 thru_hole oval (at -68.58 7.62 270) (size 1.524 2) (drill 1.016) (layers *.Cu *.Mask F.SilkS))
|
||||
(pad 49 thru_hole oval (at -71.12 10.16 270) (size 1.524 2) (drill 1.016) (layers *.Cu *.Mask F.SilkS))
|
||||
(pad 50 thru_hole oval (at -68.58 10.16 270) (size 1.524 2) (drill 1.016) (layers *.Cu *.Mask F.SilkS))
|
||||
(pad 51 thru_hole oval (at -71.12 12.7 270) (size 1.524 2) (drill 1.016) (layers *.Cu *.Mask F.SilkS))
|
||||
(pad 52 thru_hole oval (at -68.58 12.7 270) (size 1.524 2) (drill 1.016) (layers *.Cu *.Mask F.SilkS))
|
||||
(pad 53 thru_hole oval (at -71.12 15.24 270) (size 1.524 2) (drill 1.016) (layers *.Cu *.Mask F.SilkS))
|
||||
(pad 54 thru_hole oval (at -68.58 15.24 270) (size 1.524 2) (drill 1.016) (layers *.Cu *.Mask F.SilkS))
|
||||
(pad 55 thru_hole oval (at -71.12 17.78 270) (size 1.524 2) (drill 1.016) (layers *.Cu *.Mask F.SilkS))
|
||||
(pad 56 thru_hole oval (at -68.58 17.78 270) (size 1.524 2) (drill 1.016) (layers *.Cu *.Mask F.SilkS))
|
||||
(pad 57 thru_hole oval (at -71.12 20.32 270) (size 1.524 2) (drill 1.016) (layers *.Cu *.Mask F.SilkS))
|
||||
(pad 58 thru_hole oval (at -68.58 20.32 270) (size 1.524 2) (drill 1.016) (layers *.Cu *.Mask F.SilkS))
|
||||
(pad 59 thru_hole oval (at -71.12 22.86 270) (size 1.524 2) (drill 1.016) (layers *.Cu *.Mask F.SilkS))
|
||||
(pad 60 thru_hole oval (at -68.58 22.86 270) (size 1.524 2) (drill 1.016) (layers *.Cu *.Mask F.SilkS))
|
||||
(pad 61 thru_hole oval (at -71.12 25.4 270) (size 1.524 2) (drill 1.016) (layers *.Cu *.Mask F.SilkS))
|
||||
(pad 62 thru_hole oval (at -68.58 25.4 270) (size 1.524 2) (drill 1.016) (layers *.Cu *.Mask F.SilkS))
|
||||
(pad 63 thru_hole oval (at -71.12 27.94 270) (size 1.524 2) (drill 1.016) (layers *.Cu *.Mask F.SilkS))
|
||||
(pad 64 thru_hole oval (at -68.58 27.94 270) (size 1.524 2) (drill 1.016) (layers *.Cu *.Mask F.SilkS))
|
||||
(pad 65 thru_hole oval (at -71.12 30.48 270) (size 1.524 2) (drill 1.016) (layers *.Cu *.Mask F.SilkS))
|
||||
(pad 66 thru_hole oval (at -68.58 30.48 270) (size 1.524 2) (drill 1.016) (layers *.Cu *.Mask F.SilkS))
|
||||
(pad 67 thru_hole oval (at -71.12 33.02 270) (size 1.524 2) (drill 1.016) (layers *.Cu *.Mask F.SilkS))
|
||||
(pad 68 thru_hole oval (at -68.58 33.02 270) (size 1.524 2) (drill 1.016) (layers *.Cu *.Mask F.SilkS))
|
||||
(pad 69 thru_hole oval (at -71.12 35.56 270) (size 1.524 2) (drill 1.016) (layers *.Cu *.Mask F.SilkS))
|
||||
(pad 70 thru_hole oval (at -68.58 35.56 270) (size 1.524 2) (drill 1.016) (layers *.Cu *.Mask F.SilkS))
|
||||
(pad 71 thru_hole oval (at -71.12 38.1 270) (size 1.524 2) (drill 1.016) (layers *.Cu *.Mask F.SilkS))
|
||||
(pad 72 thru_hole oval (at -68.58 38.1 270) (size 1.524 2) (drill 1.016) (layers *.Cu *.Mask F.SilkS))
|
||||
(pad 73 thru_hole oval (at -71.12 40.64 270) (size 1.524 2) (drill 1.016) (layers *.Cu *.Mask F.SilkS))
|
||||
(pad 74 thru_hole oval (at -68.58 40.64 270) (size 1.524 2) (drill 1.016) (layers *.Cu *.Mask F.SilkS))
|
||||
(pad 75 thru_hole oval (at -71.12 43.18 270) (size 1.524 2) (drill 1.016) (layers *.Cu *.Mask F.SilkS))
|
||||
(pad 76 thru_hole oval (at -68.58 43.18 270) (size 1.524 2) (drill 1.016) (layers *.Cu *.Mask F.SilkS))
|
||||
(pad 77 thru_hole oval (at -71.12 45.72 270) (size 1.524 2) (drill 1.016) (layers *.Cu *.Mask F.SilkS))
|
||||
(pad 78 thru_hole oval (at -68.58 45.72 270) (size 1.524 2) (drill 1.016) (layers *.Cu *.Mask F.SilkS))
|
||||
(pad 79 thru_hole oval (at -71.12 48.26 270) (size 1.524 2) (drill 1.016) (layers *.Cu *.Mask F.SilkS))
|
||||
(pad 80 thru_hole oval (at -68.58 48.26 270) (size 1.524 2) (drill 1.016) (layers *.Cu *.Mask F.SilkS))
|
||||
)
|
||||
11
samples/KiCad Layout/Fiducial_1mm.kicad_mod
Normal file
11
samples/KiCad Layout/Fiducial_1mm.kicad_mod
Normal file
@@ -0,0 +1,11 @@
|
||||
(module footprints:Fiducial_1mm (layer F.Cu) (tedit 573E1507)
|
||||
(clearance 1.524)
|
||||
(fp_text reference F3 (at 0.02 -0.9) (layer F.SilkS) hide
|
||||
(effects (font (size 0.7112 0.4572) (thickness 0.1143)))
|
||||
)
|
||||
(fp_text value FIDUCIAL (at 0 0.99) (layer F.SilkS) hide
|
||||
(effects (font (size 0.254 0.254) (thickness 0.00254)))
|
||||
)
|
||||
(pad 1 smd circle (at 0 0) (size 1 1) (layers F.Cu F.Mask)
|
||||
(solder_mask_margin 1.5))
|
||||
)
|
||||
25
samples/KiCad Layout/LED-5MM.kicad_mod
Normal file
25
samples/KiCad Layout/LED-5MM.kicad_mod
Normal file
@@ -0,0 +1,25 @@
|
||||
(module footprints:LED-5MM (layer F.Cu) (tedit 5570F7EA)
|
||||
(descr "LED 5mm round vertical")
|
||||
(tags "LED 5mm round vertical")
|
||||
(fp_text reference D4 (at 1.524 4.064) (layer F.SilkS)
|
||||
(effects (font (size 1 1) (thickness 0.15)))
|
||||
)
|
||||
(fp_text value LED (at 1.524 -3.937) (layer F.Fab)
|
||||
(effects (font (size 1 1) (thickness 0.15)))
|
||||
)
|
||||
(fp_line (start -1.5 -1.55) (end -1.5 1.55) (layer F.CrtYd) (width 0.05))
|
||||
(fp_arc (start 1.3 0) (end -1.5 1.55) (angle -302) (layer F.CrtYd) (width 0.05))
|
||||
(fp_arc (start 1.27 0) (end -1.23 -1.5) (angle 297.5) (layer F.SilkS) (width 0.15))
|
||||
(fp_line (start -1.23 1.5) (end -1.23 -1.5) (layer F.SilkS) (width 0.15))
|
||||
(fp_circle (center 1.27 0) (end 0.97 -2.5) (layer F.SilkS) (width 0.15))
|
||||
(fp_text user K (at -1.905 1.905) (layer F.SilkS)
|
||||
(effects (font (size 1 1) (thickness 0.15)))
|
||||
)
|
||||
(pad 1 thru_hole rect (at 0 0 90) (size 2 1.9) (drill 1.00076) (layers *.Cu *.Mask F.SilkS))
|
||||
(pad 2 thru_hole circle (at 2.54 0) (size 1.9 1.9) (drill 1.00076) (layers *.Cu *.Mask F.SilkS))
|
||||
(model LEDs.3dshapes/LED-5MM.wrl
|
||||
(at (xyz 0.05 0 0))
|
||||
(scale (xyz 1 1 1))
|
||||
(rotate (xyz 0 0 90))
|
||||
)
|
||||
)
|
||||
78
samples/KiCad Layout/Logo_OSHWA.kicad_mod
Normal file
78
samples/KiCad Layout/Logo_OSHWA.kicad_mod
Normal file
@@ -0,0 +1,78 @@
|
||||
(module footprints:Logo_OSHWA (layer F.Cu) (tedit 560D8B85)
|
||||
(fp_text reference G101 (at 0 4.2418) (layer F.SilkS) hide
|
||||
(effects (font (size 0.7112 0.4572) (thickness 0.1143)))
|
||||
)
|
||||
(fp_text value Logo_OSHWA (at 0 -4.2418) (layer F.SilkS) hide
|
||||
(effects (font (size 0.36322 0.36322) (thickness 0.07112)))
|
||||
)
|
||||
(fp_poly (pts (xy -2.42316 3.59156) (xy -2.38252 3.57124) (xy -2.28854 3.51282) (xy -2.15392 3.42392)
|
||||
(xy -1.99644 3.31978) (xy -1.83896 3.21056) (xy -1.70942 3.1242) (xy -1.61798 3.06578)
|
||||
(xy -1.57988 3.04546) (xy -1.55956 3.05054) (xy -1.48336 3.08864) (xy -1.37414 3.14452)
|
||||
(xy -1.31064 3.17754) (xy -1.21158 3.22072) (xy -1.16078 3.23088) (xy -1.15316 3.21564)
|
||||
(xy -1.11506 3.13944) (xy -1.05918 3.00736) (xy -0.98298 2.83464) (xy -0.89662 2.63144)
|
||||
(xy -0.80264 2.413) (xy -0.7112 2.18948) (xy -0.6223 1.97612) (xy -0.54356 1.78562)
|
||||
(xy -0.48006 1.63068) (xy -0.43942 1.52146) (xy -0.42418 1.47574) (xy -0.42926 1.46558)
|
||||
(xy -0.48006 1.41732) (xy -0.56642 1.35128) (xy -0.75692 1.19634) (xy -0.94234 0.96266)
|
||||
(xy -1.05664 0.6985) (xy -1.09474 0.40386) (xy -1.06172 0.13208) (xy -0.95504 -0.12954)
|
||||
(xy -0.77216 -0.36576) (xy -0.55118 -0.54102) (xy -0.2921 -0.65278) (xy 0 -0.68834)
|
||||
(xy 0.2794 -0.65786) (xy 0.5461 -0.55118) (xy 0.78232 -0.37084) (xy 0.88138 -0.25654)
|
||||
(xy 1.01854 -0.01778) (xy 1.09728 0.23876) (xy 1.1049 0.30226) (xy 1.09474 0.5842)
|
||||
(xy 1.01092 0.85344) (xy 0.8636 1.09474) (xy 0.65786 1.29032) (xy 0.62992 1.31064)
|
||||
(xy 0.53594 1.38176) (xy 0.47244 1.43002) (xy 0.42164 1.47066) (xy 0.77978 2.33172)
|
||||
(xy 0.83566 2.46888) (xy 0.93472 2.7051) (xy 1.02108 2.9083) (xy 1.08966 3.06832)
|
||||
(xy 1.13792 3.17754) (xy 1.15824 3.22072) (xy 1.16078 3.22326) (xy 1.19126 3.22834)
|
||||
(xy 1.2573 3.20294) (xy 1.37668 3.14452) (xy 1.45796 3.10388) (xy 1.5494 3.0607)
|
||||
(xy 1.59004 3.04546) (xy 1.6256 3.06324) (xy 1.71196 3.12166) (xy 1.8415 3.20548)
|
||||
(xy 1.9939 3.30962) (xy 2.14122 3.41122) (xy 2.27584 3.50012) (xy 2.3749 3.56108)
|
||||
(xy 2.42316 3.58902) (xy 2.43078 3.58902) (xy 2.47142 3.56362) (xy 2.55016 3.50012)
|
||||
(xy 2.667 3.38836) (xy 2.8321 3.2258) (xy 2.8575 3.2004) (xy 2.99466 3.0607)
|
||||
(xy 3.10642 2.94386) (xy 3.18008 2.86258) (xy 3.20548 2.82448) (xy 3.20548 2.82448)
|
||||
(xy 3.18262 2.77622) (xy 3.11912 2.6797) (xy 3.03022 2.54254) (xy 2.921 2.38252)
|
||||
(xy 2.63652 1.9685) (xy 2.794 1.57734) (xy 2.84226 1.45796) (xy 2.90322 1.31318)
|
||||
(xy 2.9464 1.20904) (xy 2.9718 1.16332) (xy 3.01244 1.14808) (xy 3.12166 1.12268)
|
||||
(xy 3.2766 1.08966) (xy 3.45948 1.05664) (xy 3.63728 1.02362) (xy 3.7973 0.99314)
|
||||
(xy 3.9116 0.97028) (xy 3.9624 0.96012) (xy 3.9751 0.9525) (xy 3.98526 0.9271)
|
||||
(xy 3.99288 0.87376) (xy 3.99542 0.77724) (xy 3.99796 0.62484) (xy 3.99796 0.40386)
|
||||
(xy 3.99796 0.381) (xy 3.99542 0.17018) (xy 3.99288 0.00254) (xy 3.9878 -0.10668)
|
||||
(xy 3.98018 -0.14986) (xy 3.98018 -0.14986) (xy 3.92938 -0.16256) (xy 3.81762 -0.18542)
|
||||
(xy 3.6576 -0.21844) (xy 3.4671 -0.254) (xy 3.45694 -0.25654) (xy 3.26644 -0.2921)
|
||||
(xy 3.10896 -0.32512) (xy 2.9972 -0.35052) (xy 2.95148 -0.36576) (xy 2.94132 -0.37846)
|
||||
(xy 2.90322 -0.45212) (xy 2.84734 -0.56896) (xy 2.78638 -0.71374) (xy 2.72288 -0.86106)
|
||||
(xy 2.66954 -0.99568) (xy 2.63398 -1.09474) (xy 2.62382 -1.14046) (xy 2.62382 -1.14046)
|
||||
(xy 2.65176 -1.18618) (xy 2.7178 -1.28524) (xy 2.80924 -1.41986) (xy 2.921 -1.58242)
|
||||
(xy 2.92862 -1.59512) (xy 3.03784 -1.75514) (xy 3.12674 -1.88976) (xy 3.18516 -1.98628)
|
||||
(xy 3.20548 -2.02946) (xy 3.20548 -2.032) (xy 3.16992 -2.08026) (xy 3.08864 -2.16916)
|
||||
(xy 2.9718 -2.29108) (xy 2.8321 -2.43332) (xy 2.78638 -2.4765) (xy 2.63144 -2.6289)
|
||||
(xy 2.52476 -2.72796) (xy 2.45618 -2.7813) (xy 2.42316 -2.794) (xy 2.42316 -2.79146)
|
||||
(xy 2.3749 -2.76352) (xy 2.2733 -2.69748) (xy 2.13614 -2.6035) (xy 1.97358 -2.49428)
|
||||
(xy 1.96342 -2.48666) (xy 1.8034 -2.37744) (xy 1.67132 -2.28854) (xy 1.5748 -2.22504)
|
||||
(xy 1.53416 -2.19964) (xy 1.52654 -2.19964) (xy 1.46304 -2.21996) (xy 1.34874 -2.25806)
|
||||
(xy 1.20904 -2.31394) (xy 1.06172 -2.37236) (xy 0.9271 -2.42824) (xy 0.8255 -2.4765)
|
||||
(xy 0.77724 -2.5019) (xy 0.77724 -2.50444) (xy 0.75946 -2.56286) (xy 0.73152 -2.68224)
|
||||
(xy 0.6985 -2.84734) (xy 0.6604 -3.04292) (xy 0.65532 -3.0734) (xy 0.61976 -3.2639)
|
||||
(xy 0.58928 -3.42138) (xy 0.56642 -3.5306) (xy 0.55372 -3.57632) (xy 0.52832 -3.5814)
|
||||
(xy 0.43434 -3.58902) (xy 0.2921 -3.59156) (xy 0.11938 -3.5941) (xy -0.06096 -3.59156)
|
||||
(xy -0.23622 -3.58902) (xy -0.38862 -3.58394) (xy -0.4953 -3.57632) (xy -0.54102 -3.56616)
|
||||
(xy -0.54356 -3.56362) (xy -0.5588 -3.5052) (xy -0.5842 -3.38582) (xy -0.61976 -3.22072)
|
||||
(xy -0.65786 -3.0226) (xy -0.66294 -2.98958) (xy -0.6985 -2.79908) (xy -0.73152 -2.64414)
|
||||
(xy -0.75438 -2.53492) (xy -0.76708 -2.49428) (xy -0.78232 -2.48412) (xy -0.86106 -2.4511)
|
||||
(xy -0.98806 -2.39776) (xy -1.14808 -2.33426) (xy -1.51384 -2.1844) (xy -1.96088 -2.49428)
|
||||
(xy -2.00406 -2.52222) (xy -2.16408 -2.63144) (xy -2.2987 -2.72034) (xy -2.39014 -2.77876)
|
||||
(xy -2.42824 -2.80162) (xy -2.43078 -2.79908) (xy -2.4765 -2.76098) (xy -2.5654 -2.67716)
|
||||
(xy -2.68732 -2.55778) (xy -2.82702 -2.41808) (xy -2.93116 -2.31394) (xy -3.05562 -2.18694)
|
||||
(xy -3.13436 -2.10312) (xy -3.17754 -2.04724) (xy -3.19278 -2.01422) (xy -3.1877 -1.9939)
|
||||
(xy -3.15976 -1.94818) (xy -3.09372 -1.84912) (xy -3.00228 -1.71196) (xy -2.89306 -1.55448)
|
||||
(xy -2.80162 -1.41986) (xy -2.7051 -1.27) (xy -2.6416 -1.16332) (xy -2.61874 -1.10998)
|
||||
(xy -2.62382 -1.08712) (xy -2.65684 -1.00076) (xy -2.71018 -0.86614) (xy -2.77622 -0.70866)
|
||||
(xy -2.9337 -0.35306) (xy -3.16738 -0.30988) (xy -3.30708 -0.28194) (xy -3.5052 -0.24384)
|
||||
(xy -3.69316 -0.20828) (xy -3.9878 -0.14986) (xy -3.99796 0.93218) (xy -3.95224 0.9525)
|
||||
(xy -3.90906 0.9652) (xy -3.79984 0.98806) (xy -3.6449 1.01854) (xy -3.45948 1.0541)
|
||||
(xy -3.30454 1.08458) (xy -3.14452 1.11252) (xy -3.03276 1.13538) (xy -2.98196 1.14554)
|
||||
(xy -2.96926 1.16332) (xy -2.92862 1.23952) (xy -2.87274 1.36144) (xy -2.81178 1.50876)
|
||||
(xy -2.74828 1.65862) (xy -2.6924 1.79832) (xy -2.65176 1.905) (xy -2.63906 1.96088)
|
||||
(xy -2.65938 2.00406) (xy -2.72034 2.0955) (xy -2.8067 2.22758) (xy -2.91338 2.38506)
|
||||
(xy -3.0226 2.54254) (xy -3.1115 2.67716) (xy -3.175 2.77368) (xy -3.2004 2.81686)
|
||||
(xy -3.1877 2.84734) (xy -3.12674 2.92354) (xy -3.00736 3.04546) (xy -2.8321 3.22072)
|
||||
(xy -2.80162 3.24866) (xy -2.66192 3.38328) (xy -2.54254 3.4925) (xy -2.46126 3.56616)
|
||||
(xy -2.42316 3.59156)) (layer F.SilkS) (width 0.00254))
|
||||
)
|
||||
101
samples/KiCad Layout/Logo_Poncho.kicad_mod
Normal file
101
samples/KiCad Layout/Logo_Poncho.kicad_mod
Normal file
@@ -0,0 +1,101 @@
|
||||
(module footprints:Logo_Poncho (layer F.Cu) (tedit 560DAFF4)
|
||||
(fp_text reference G*** (at 0.127 5.588) (layer F.SilkS) hide
|
||||
(effects (font (thickness 0.3)))
|
||||
)
|
||||
(fp_text value LOGO (at 0.762 7.493) (layer F.SilkS) hide
|
||||
(effects (font (thickness 0.3)))
|
||||
)
|
||||
(fp_poly (pts (xy 4.535714 -0.627021) (xy 4.498746 -0.420109) (xy 4.405012 -0.1352) (xy 4.280272 0.162897)
|
||||
(xy 4.150281 0.409374) (xy 4.123376 0.447413) (xy 4.123376 -0.123701) (xy 4.058326 -0.436938)
|
||||
(xy 3.869112 -0.644378) (xy 3.564639 -0.737671) (xy 3.463636 -0.742208) (xy 3.129516 -0.681223)
|
||||
(xy 2.908248 -0.503835) (xy 2.808734 -0.218392) (xy 2.803896 -0.123701) (xy 2.868946 0.189536)
|
||||
(xy 3.058159 0.396975) (xy 3.362633 0.490269) (xy 3.463636 0.494805) (xy 3.797606 0.436492)
|
||||
(xy 3.958441 0.32987) (xy 4.092315 0.09203) (xy 4.123376 -0.123701) (xy 4.123376 0.447413)
|
||||
(xy 4.089856 0.494805) (xy 4.013749 0.621925) (xy 3.89522 0.861365) (xy 3.753792 1.172585)
|
||||
(xy 3.672876 1.360714) (xy 3.421635 1.929272) (xy 3.149718 2.496808) (xy 2.869494 3.041693)
|
||||
(xy 2.593334 3.542296) (xy 2.556493 3.603955) (xy 2.556493 -0.123701) (xy 2.552598 -0.439936)
|
||||
(xy 2.534834 -0.625484) (xy 2.494089 -0.714524) (xy 2.421247 -0.741238) (xy 2.391558 -0.742208)
|
||||
(xy 2.270831 -0.703329) (xy 2.228325 -0.558669) (xy 2.226623 -0.494805) (xy 2.206189 -0.31957)
|
||||
(xy 2.109798 -0.254982) (xy 1.97922 -0.247402) (xy 1.803985 -0.267837) (xy 1.739397 -0.364227)
|
||||
(xy 1.731818 -0.494805) (xy 1.705898 -0.675896) (xy 1.609459 -0.739655) (xy 1.566883 -0.742208)
|
||||
(xy 1.482553 -0.727599) (xy 1.433074 -0.660988) (xy 1.40933 -0.508193) (xy 1.402206 -0.235036)
|
||||
(xy 1.401948 -0.123701) (xy 1.405843 0.192533) (xy 1.423606 0.378081) (xy 1.464351 0.467122)
|
||||
(xy 1.537193 0.493835) (xy 1.566883 0.494805) (xy 1.680559 0.462518) (xy 1.726426 0.336472)
|
||||
(xy 1.731818 0.206169) (xy 1.745609 0.012245) (xy 1.815564 -0.067294) (xy 1.97922 -0.082467)
|
||||
(xy 2.145441 -0.066377) (xy 2.213617 0.015237) (xy 2.226623 0.206169) (xy 2.245073 0.405103)
|
||||
(xy 2.317099 0.48537) (xy 2.391558 0.494805) (xy 2.475887 0.480197) (xy 2.525367 0.413586)
|
||||
(xy 2.549111 0.260791) (xy 2.556234 -0.012366) (xy 2.556493 -0.123701) (xy 2.556493 3.603955)
|
||||
(xy 2.33361 3.976986) (xy 2.102692 4.324132) (xy 1.912952 4.562103) (xy 1.781691 4.667512)
|
||||
(xy 1.660102 4.654002) (xy 1.438445 4.580892) (xy 1.163465 4.463746) (xy 1.154545 4.459546)
|
||||
(xy 1.154545 0.36149) (xy 1.110706 0.268405) (xy 0.956623 0.266159) (xy 0.938776 0.269422)
|
||||
(xy 0.717011 0.243945) (xy 0.523128 0.11531) (xy 0.417755 -0.07121) (xy 0.412337 -0.123701)
|
||||
(xy 0.484303 -0.318602) (xy 0.658393 -0.472009) (xy 0.871896 -0.536691) (xy 0.949632 -0.528355)
|
||||
(xy 1.105982 -0.515384) (xy 1.154279 -0.597467) (xy 1.154545 -0.609566) (xy 1.114247 -0.69528)
|
||||
(xy 0.970303 -0.735064) (xy 0.783441 -0.742208) (xy 0.429195 -0.687347) (xy 0.198088 -0.523118)
|
||||
(xy 0.090717 -0.250044) (xy 0.082467 -0.123701) (xy 0.144642 0.188869) (xy 0.330769 0.392787)
|
||||
(xy 0.640252 0.487526) (xy 0.783441 0.494805) (xy 1.022962 0.480515) (xy 1.134243 0.429291)
|
||||
(xy 1.154545 0.36149) (xy 1.154545 4.459546) (xy 1.148315 4.456614) (xy 0.592041 4.256938)
|
||||
(xy 0.061238 4.207886) (xy -0.164935 4.249843) (xy -0.164935 -0.123701) (xy -0.168831 -0.439936)
|
||||
(xy -0.186594 -0.625484) (xy -0.227339 -0.714524) (xy -0.300181 -0.741238) (xy -0.329871 -0.742208)
|
||||
(xy -0.435349 -0.716231) (xy -0.483875 -0.609894) (xy -0.495586 -0.391721) (xy -0.496366 -0.041234)
|
||||
(xy -0.706429 -0.391721) (xy -0.874005 -0.625569) (xy -1.029731 -0.729733) (xy -1.117986 -0.742208)
|
||||
(xy -1.220495 -0.733937) (xy -1.280586 -0.685976) (xy -1.309571 -0.563603) (xy -1.318762 -0.332094)
|
||||
(xy -1.319481 -0.123701) (xy -1.315585 0.192533) (xy -1.297822 0.378081) (xy -1.257077 0.467122)
|
||||
(xy -1.184235 0.493835) (xy -1.154546 0.494805) (xy -1.049068 0.468829) (xy -1.000541 0.362492)
|
||||
(xy -0.988831 0.144318) (xy -0.98805 -0.206169) (xy -0.777988 0.144318) (xy -0.610412 0.378167)
|
||||
(xy -0.454685 0.48233) (xy -0.36643 0.494805) (xy -0.263922 0.486535) (xy -0.203831 0.438574)
|
||||
(xy -0.174846 0.3162) (xy -0.165655 0.084692) (xy -0.164935 -0.123701) (xy -0.164935 4.249843)
|
||||
(xy -0.48241 4.308738) (xy -0.783442 4.420415) (xy -1.059466 4.535832) (xy -1.285963 4.626797)
|
||||
(xy -1.401948 4.669513) (xy -1.518876 4.625399) (xy -1.566884 4.584033) (xy -1.566884 -0.123701)
|
||||
(xy -1.631934 -0.436938) (xy -1.821147 -0.644378) (xy -2.12562 -0.737671) (xy -2.226624 -0.742208)
|
||||
(xy -2.560743 -0.681223) (xy -2.782012 -0.503835) (xy -2.881525 -0.218392) (xy -2.886364 -0.123701)
|
||||
(xy -2.821314 0.189536) (xy -2.6321 0.396975) (xy -2.327627 0.490269) (xy -2.226624 0.494805)
|
||||
(xy -1.892653 0.436492) (xy -1.731819 0.32987) (xy -1.597945 0.09203) (xy -1.566884 -0.123701)
|
||||
(xy -1.566884 4.584033) (xy -1.717176 4.454536) (xy -1.98582 4.166799) (xy -2.061689 4.078924)
|
||||
(xy -2.369861 3.70727) (xy -2.632201 3.363429) (xy -2.870341 3.013116) (xy -2.968832 2.849614)
|
||||
(xy -2.968832 -0.32987) (xy -3.007485 -0.54598) (xy -3.140146 -0.67528) (xy -3.391869 -0.734039)
|
||||
(xy -3.603832 -0.742208) (xy -4.04091 -0.742208) (xy -4.04091 -0.123701) (xy -4.037014 0.192533)
|
||||
(xy -4.019251 0.378081) (xy -3.978506 0.467122) (xy -3.905664 0.493835) (xy -3.875974 0.494805)
|
||||
(xy -3.746639 0.446485) (xy -3.711039 0.288637) (xy -3.687673 0.146227) (xy -3.584731 0.090232)
|
||||
(xy -3.438897 0.082468) (xy -3.16065 0.034793) (xy -3.008068 -0.114765) (xy -2.968832 -0.32987)
|
||||
(xy -2.968832 2.849614) (xy -3.105916 2.622046) (xy -3.360558 2.155935) (xy -3.6559 1.580499)
|
||||
(xy -3.724805 1.443182) (xy -3.927446 1.040996) (xy -4.107468 0.68891) (xy -4.250627 0.414385)
|
||||
(xy -4.342678 0.24488) (xy -4.366512 0.206169) (xy -4.479713 -0.061738) (xy -4.470402 -0.368299)
|
||||
(xy -4.39208 -0.562072) (xy -4.211754 -0.794239) (xy -3.970771 -1.027175) (xy -3.729883 -1.205582)
|
||||
(xy -3.628572 -1.257014) (xy -3.515586 -1.328258) (xy -3.31072 -1.481511) (xy -3.047204 -1.691308)
|
||||
(xy -2.861153 -1.845142) (xy -2.478394 -2.151727) (xy -2.09396 -2.434151) (xy -1.735885 -2.674156)
|
||||
(xy -1.432202 -2.853482) (xy -1.210945 -2.953871) (xy -1.135923 -2.968831) (xy -0.992755 -2.911987)
|
||||
(xy -0.868796 -2.807085) (xy -0.798823 -2.718089) (xy -0.768465 -2.621372) (xy -0.779148 -2.476306)
|
||||
(xy -0.832302 -2.242261) (xy -0.897248 -1.997411) (xy -1.002077 -1.614541) (xy -1.0637 -1.342913)
|
||||
(xy -1.062894 -1.163551) (xy -0.980436 -1.05748) (xy -0.797105 -1.005726) (xy -0.493678 -0.989314)
|
||||
(xy -0.050932 -0.989267) (xy 0.123701 -0.98961) (xy 0.616616 -0.993152) (xy 0.963601 -1.004879)
|
||||
(xy 1.183529 -1.026446) (xy 1.295275 -1.059505) (xy 1.31948 -1.094352) (xy 1.298521 -1.22034)
|
||||
(xy 1.243133 -1.457326) (xy 1.164548 -1.757819) (xy 1.150407 -1.809213) (xy 1.043088 -2.255847)
|
||||
(xy 1.008894 -2.569631) (xy 1.048676 -2.765972) (xy 1.163285 -2.860279) (xy 1.208992 -2.870512)
|
||||
(xy 1.420553 -2.83991) (xy 1.739874 -2.711189) (xy 2.149801 -2.493929) (xy 2.633175 -2.197713)
|
||||
(xy 3.172841 -1.832122) (xy 3.525487 -1.576813) (xy 3.929546 -1.272303) (xy 4.214754 -1.04349)
|
||||
(xy 4.398878 -0.873667) (xy 4.499689 -0.746128) (xy 4.534955 -0.644167) (xy 4.535714 -0.627021)
|
||||
(xy 4.535714 -0.627021)) (layer F.SilkS) (width 0.1))
|
||||
(fp_poly (pts (xy 1.023542 -3.736319) (xy 0.895402 -3.389445) (xy 0.679417 -3.11223) (xy 0.563302 -2.982356)
|
||||
(xy 0.508034 -2.869698) (xy 0.506066 -2.720981) (xy 0.549854 -2.48293) (xy 0.574294 -2.370022)
|
||||
(xy 0.658312 -1.973188) (xy 0.69611 -1.709422) (xy 0.675383 -1.550382) (xy 0.583822 -1.467723)
|
||||
(xy 0.409122 -1.433104) (xy 0.16144 -1.419187) (xy -0.12355 -1.415195) (xy -0.339882 -1.428263)
|
||||
(xy -0.43645 -1.453549) (xy -0.490308 -1.618268) (xy -0.466441 -1.923684) (xy -0.365224 -2.365222)
|
||||
(xy -0.360015 -2.384058) (xy -0.225225 -2.868872) (xy -0.488808 -3.104404) (xy -0.714353 -3.402585)
|
||||
(xy -0.808424 -3.746824) (xy -0.77552 -4.096523) (xy -0.620138 -4.411085) (xy -0.346777 -4.649915)
|
||||
(xy -0.31571 -4.666738) (xy 0.033719 -4.763905) (xy 0.380075 -4.71573) (xy 0.68714 -4.538441)
|
||||
(xy 0.918691 -4.248265) (xy 0.989692 -4.081895) (xy 1.023542 -3.736319) (xy 1.023542 -3.736319)) (layer F.SilkS) (width 0.1))
|
||||
(fp_poly (pts (xy -3.320079 -0.321578) (xy -3.381169 -0.206169) (xy -3.537606 -0.087441) (xy -3.656944 -0.12265)
|
||||
(xy -3.710414 -0.301007) (xy -3.711039 -0.32987) (xy -3.666881 -0.523821) (xy -3.553583 -0.57585)
|
||||
(xy -3.399915 -0.47517) (xy -3.381169 -0.453571) (xy -3.320079 -0.321578) (xy -3.320079 -0.321578)) (layer F.SilkS) (width 0.1))
|
||||
(fp_poly (pts (xy -1.911824 -0.1467) (xy -1.935194 -0.006732) (xy -2.006645 0.114199) (xy -2.128505 0.265484)
|
||||
(xy -2.225472 0.329848) (xy -2.226624 0.32987) (xy -2.322643 0.267542) (xy -2.444552 0.117317)
|
||||
(xy -2.446603 0.114199) (xy -2.537406 -0.05684) (xy -2.52656 -0.197017) (xy -2.465958 -0.318756)
|
||||
(xy -2.343482 -0.473895) (xy -2.226624 -0.536039) (xy -2.106037 -0.47051) (xy -1.987289 -0.318756)
|
||||
(xy -1.911824 -0.1467) (xy -1.911824 -0.1467)) (layer F.SilkS) (width 0.1))
|
||||
(fp_poly (pts (xy 3.778435 -0.1467) (xy 3.755065 -0.006732) (xy 3.683615 0.114199) (xy 3.561755 0.265484)
|
||||
(xy 3.464788 0.329848) (xy 3.463636 0.32987) (xy 3.367616 0.267542) (xy 3.245708 0.117317)
|
||||
(xy 3.243657 0.114199) (xy 3.152854 -0.05684) (xy 3.163699 -0.197017) (xy 3.224301 -0.318756)
|
||||
(xy 3.346778 -0.473895) (xy 3.463636 -0.536039) (xy 3.584223 -0.47051) (xy 3.702971 -0.318756)
|
||||
(xy 3.778435 -0.1467) (xy 3.778435 -0.1467)) (layer F.SilkS) (width 0.1))
|
||||
)
|
||||
@@ -0,0 +1,24 @@
|
||||
(module footprints:MagneticBuzzer_ProSignal_ABT-410-RC (layer F.Cu) (tedit 544E5504)
|
||||
(descr "Buzzer, Elektromagnetic Beeper, Summer, 1,5V-DC,")
|
||||
(tags "Pro Signal, ABT-410-RC,")
|
||||
(fp_text reference U1 (at 3.175 -8.001) (layer F.SilkS)
|
||||
(effects (font (size 1 1) (thickness 0.15)))
|
||||
)
|
||||
(fp_text value BUZZER (at 2.17424 8.001) (layer F.Fab)
|
||||
(effects (font (size 1 1) (thickness 0.15)))
|
||||
)
|
||||
(fp_line (start 8.17626 -0.50038) (end 8.17626 0.50038) (layer F.SilkS) (width 0.15))
|
||||
(fp_line (start 7.67588 0) (end 8.6741 0) (layer F.SilkS) (width 0.15))
|
||||
(fp_circle (center 3.175 0) (end 4.17576 0) (layer F.SilkS) (width 0.15))
|
||||
(fp_text user + (at 10.67562 0) (layer F.SilkS)
|
||||
(effects (font (size 1 1) (thickness 0.15)))
|
||||
)
|
||||
(fp_circle (center 3.175 0) (end 9.37514 0) (layer F.SilkS) (width 0.15))
|
||||
(pad 1 thru_hole circle (at 0 0) (size 1.6002 1.6002) (drill 1.00076) (layers *.Cu *.Mask F.SilkS))
|
||||
(pad 2 thru_hole circle (at 6.35 0) (size 1.6002 1.6002) (drill 1.00076) (layers *.Cu *.Mask F.SilkS))
|
||||
(model Buzzers_Beepers.3dshapes/MagneticBuzzer_ProSignal_ABT-410-RC.wrl
|
||||
(at (xyz 0 0 0))
|
||||
(scale (xyz 1 1 1))
|
||||
(rotate (xyz 0 0 0))
|
||||
)
|
||||
)
|
||||
31
samples/KiCad Layout/Pin_Header_Straight_2x02.kicad_mod
Normal file
31
samples/KiCad Layout/Pin_Header_Straight_2x02.kicad_mod
Normal file
@@ -0,0 +1,31 @@
|
||||
(module footprints:Pin_Header_Straight_2x02 (layer F.Cu) (tedit 0)
|
||||
(descr "Through hole pin header")
|
||||
(tags "pin header")
|
||||
(fp_text reference P1 (at 0 -5.1) (layer F.SilkS)
|
||||
(effects (font (size 1 1) (thickness 0.15)))
|
||||
)
|
||||
(fp_text value PWR_JUMPER (at 0 -3.1) (layer F.Fab)
|
||||
(effects (font (size 1 1) (thickness 0.15)))
|
||||
)
|
||||
(fp_line (start -1.75 -1.75) (end -1.75 4.3) (layer F.CrtYd) (width 0.05))
|
||||
(fp_line (start 4.3 -1.75) (end 4.3 4.3) (layer F.CrtYd) (width 0.05))
|
||||
(fp_line (start -1.75 -1.75) (end 4.3 -1.75) (layer F.CrtYd) (width 0.05))
|
||||
(fp_line (start -1.75 4.3) (end 4.3 4.3) (layer F.CrtYd) (width 0.05))
|
||||
(fp_line (start -1.55 0) (end -1.55 -1.55) (layer F.SilkS) (width 0.15))
|
||||
(fp_line (start 0 -1.55) (end -1.55 -1.55) (layer F.SilkS) (width 0.15))
|
||||
(fp_line (start -1.27 1.27) (end 1.27 1.27) (layer F.SilkS) (width 0.15))
|
||||
(fp_line (start 1.27 1.27) (end 1.27 -1.27) (layer F.SilkS) (width 0.15))
|
||||
(fp_line (start 1.27 -1.27) (end 3.81 -1.27) (layer F.SilkS) (width 0.15))
|
||||
(fp_line (start 3.81 -1.27) (end 3.81 3.81) (layer F.SilkS) (width 0.15))
|
||||
(fp_line (start 3.81 3.81) (end -1.27 3.81) (layer F.SilkS) (width 0.15))
|
||||
(fp_line (start -1.27 3.81) (end -1.27 1.27) (layer F.SilkS) (width 0.15))
|
||||
(pad 1 thru_hole rect (at 0 0) (size 1.7272 1.7272) (drill 1.016) (layers *.Cu *.Mask F.SilkS))
|
||||
(pad 2 thru_hole oval (at 2.54 0) (size 1.7272 1.7272) (drill 1.016) (layers *.Cu *.Mask F.SilkS))
|
||||
(pad 3 thru_hole oval (at 0 2.54) (size 1.7272 1.7272) (drill 1.016) (layers *.Cu *.Mask F.SilkS))
|
||||
(pad 4 thru_hole oval (at 2.54 2.54) (size 1.7272 1.7272) (drill 1.016) (layers *.Cu *.Mask F.SilkS))
|
||||
(model Pin_Headers.3dshapes/Pin_Header_Straight_2x02.wrl
|
||||
(at (xyz 0.05 -0.05 0))
|
||||
(scale (xyz 1 1 1))
|
||||
(rotate (xyz 0 0 90))
|
||||
)
|
||||
)
|
||||
67
samples/KiCad Layout/Pin_Header_Straight_2x20.kicad_mod
Normal file
67
samples/KiCad Layout/Pin_Header_Straight_2x20.kicad_mod
Normal file
@@ -0,0 +1,67 @@
|
||||
(module footprints:Pin_Header_Straight_2x20 (layer F.Cu) (tedit 0)
|
||||
(descr "Through hole pin header")
|
||||
(tags "pin header")
|
||||
(fp_text reference XA2 (at 0 -5.1) (layer F.SilkS)
|
||||
(effects (font (size 1 1) (thickness 0.15)))
|
||||
)
|
||||
(fp_text value Conn_Poncho2P_2x_20x2 (at 0 -3.1) (layer F.Fab)
|
||||
(effects (font (size 1 1) (thickness 0.15)))
|
||||
)
|
||||
(fp_line (start -1.75 -1.75) (end -1.75 50.05) (layer F.CrtYd) (width 0.05))
|
||||
(fp_line (start 4.3 -1.75) (end 4.3 50.05) (layer F.CrtYd) (width 0.05))
|
||||
(fp_line (start -1.75 -1.75) (end 4.3 -1.75) (layer F.CrtYd) (width 0.05))
|
||||
(fp_line (start -1.75 50.05) (end 4.3 50.05) (layer F.CrtYd) (width 0.05))
|
||||
(fp_line (start 3.81 49.53) (end 3.81 -1.27) (layer F.SilkS) (width 0.15))
|
||||
(fp_line (start -1.27 1.27) (end -1.27 49.53) (layer F.SilkS) (width 0.15))
|
||||
(fp_line (start 3.81 49.53) (end -1.27 49.53) (layer F.SilkS) (width 0.15))
|
||||
(fp_line (start 3.81 -1.27) (end 1.27 -1.27) (layer F.SilkS) (width 0.15))
|
||||
(fp_line (start 0 -1.55) (end -1.55 -1.55) (layer F.SilkS) (width 0.15))
|
||||
(fp_line (start 1.27 -1.27) (end 1.27 1.27) (layer F.SilkS) (width 0.15))
|
||||
(fp_line (start 1.27 1.27) (end -1.27 1.27) (layer F.SilkS) (width 0.15))
|
||||
(fp_line (start -1.55 -1.55) (end -1.55 0) (layer F.SilkS) (width 0.15))
|
||||
(pad 1 thru_hole rect (at 0 0) (size 1.7272 1.7272) (drill 1.016) (layers *.Cu *.Mask F.SilkS))
|
||||
(pad 2 thru_hole oval (at 2.54 0) (size 1.7272 1.7272) (drill 1.016) (layers *.Cu *.Mask F.SilkS))
|
||||
(pad 3 thru_hole oval (at 0 2.54) (size 1.7272 1.7272) (drill 1.016) (layers *.Cu *.Mask F.SilkS))
|
||||
(pad 4 thru_hole oval (at 2.54 2.54) (size 1.7272 1.7272) (drill 1.016) (layers *.Cu *.Mask F.SilkS))
|
||||
(pad 5 thru_hole oval (at 0 5.08) (size 1.7272 1.7272) (drill 1.016) (layers *.Cu *.Mask F.SilkS))
|
||||
(pad 6 thru_hole oval (at 2.54 5.08) (size 1.7272 1.7272) (drill 1.016) (layers *.Cu *.Mask F.SilkS))
|
||||
(pad 7 thru_hole oval (at 0 7.62) (size 1.7272 1.7272) (drill 1.016) (layers *.Cu *.Mask F.SilkS))
|
||||
(pad 8 thru_hole oval (at 2.54 7.62) (size 1.7272 1.7272) (drill 1.016) (layers *.Cu *.Mask F.SilkS))
|
||||
(pad 9 thru_hole oval (at 0 10.16) (size 1.7272 1.7272) (drill 1.016) (layers *.Cu *.Mask F.SilkS))
|
||||
(pad 10 thru_hole oval (at 2.54 10.16) (size 1.7272 1.7272) (drill 1.016) (layers *.Cu *.Mask F.SilkS))
|
||||
(pad 11 thru_hole oval (at 0 12.7) (size 1.7272 1.7272) (drill 1.016) (layers *.Cu *.Mask F.SilkS))
|
||||
(pad 12 thru_hole oval (at 2.54 12.7) (size 1.7272 1.7272) (drill 1.016) (layers *.Cu *.Mask F.SilkS))
|
||||
(pad 13 thru_hole oval (at 0 15.24) (size 1.7272 1.7272) (drill 1.016) (layers *.Cu *.Mask F.SilkS))
|
||||
(pad 14 thru_hole oval (at 2.54 15.24) (size 1.7272 1.7272) (drill 1.016) (layers *.Cu *.Mask F.SilkS))
|
||||
(pad 15 thru_hole oval (at 0 17.78) (size 1.7272 1.7272) (drill 1.016) (layers *.Cu *.Mask F.SilkS))
|
||||
(pad 16 thru_hole oval (at 2.54 17.78) (size 1.7272 1.7272) (drill 1.016) (layers *.Cu *.Mask F.SilkS))
|
||||
(pad 17 thru_hole oval (at 0 20.32) (size 1.7272 1.7272) (drill 1.016) (layers *.Cu *.Mask F.SilkS))
|
||||
(pad 18 thru_hole oval (at 2.54 20.32) (size 1.7272 1.7272) (drill 1.016) (layers *.Cu *.Mask F.SilkS))
|
||||
(pad 19 thru_hole oval (at 0 22.86) (size 1.7272 1.7272) (drill 1.016) (layers *.Cu *.Mask F.SilkS))
|
||||
(pad 20 thru_hole oval (at 2.54 22.86) (size 1.7272 1.7272) (drill 1.016) (layers *.Cu *.Mask F.SilkS))
|
||||
(pad 21 thru_hole oval (at 0 25.4) (size 1.7272 1.7272) (drill 1.016) (layers *.Cu *.Mask F.SilkS))
|
||||
(pad 22 thru_hole oval (at 2.54 25.4) (size 1.7272 1.7272) (drill 1.016) (layers *.Cu *.Mask F.SilkS))
|
||||
(pad 23 thru_hole oval (at 0 27.94) (size 1.7272 1.7272) (drill 1.016) (layers *.Cu *.Mask F.SilkS))
|
||||
(pad 24 thru_hole oval (at 2.54 27.94) (size 1.7272 1.7272) (drill 1.016) (layers *.Cu *.Mask F.SilkS))
|
||||
(pad 25 thru_hole oval (at 0 30.48) (size 1.7272 1.7272) (drill 1.016) (layers *.Cu *.Mask F.SilkS))
|
||||
(pad 26 thru_hole oval (at 2.54 30.48) (size 1.7272 1.7272) (drill 1.016) (layers *.Cu *.Mask F.SilkS))
|
||||
(pad 27 thru_hole oval (at 0 33.02) (size 1.7272 1.7272) (drill 1.016) (layers *.Cu *.Mask F.SilkS))
|
||||
(pad 28 thru_hole oval (at 2.54 33.02) (size 1.7272 1.7272) (drill 1.016) (layers *.Cu *.Mask F.SilkS))
|
||||
(pad 29 thru_hole oval (at 0 35.56) (size 1.7272 1.7272) (drill 1.016) (layers *.Cu *.Mask F.SilkS))
|
||||
(pad 30 thru_hole oval (at 2.54 35.56) (size 1.7272 1.7272) (drill 1.016) (layers *.Cu *.Mask F.SilkS))
|
||||
(pad 31 thru_hole oval (at 0 38.1) (size 1.7272 1.7272) (drill 1.016) (layers *.Cu *.Mask F.SilkS))
|
||||
(pad 32 thru_hole oval (at 2.54 38.1) (size 1.7272 1.7272) (drill 1.016) (layers *.Cu *.Mask F.SilkS))
|
||||
(pad 33 thru_hole oval (at 0 40.64) (size 1.7272 1.7272) (drill 1.016) (layers *.Cu *.Mask F.SilkS))
|
||||
(pad 34 thru_hole oval (at 2.54 40.64) (size 1.7272 1.7272) (drill 1.016) (layers *.Cu *.Mask F.SilkS))
|
||||
(pad 35 thru_hole oval (at 0 43.18) (size 1.7272 1.7272) (drill 1.016) (layers *.Cu *.Mask F.SilkS))
|
||||
(pad 36 thru_hole oval (at 2.54 43.18) (size 1.7272 1.7272) (drill 1.016) (layers *.Cu *.Mask F.SilkS))
|
||||
(pad 37 thru_hole oval (at 0 45.72) (size 1.7272 1.7272) (drill 1.016) (layers *.Cu *.Mask F.SilkS))
|
||||
(pad 38 thru_hole oval (at 2.54 45.72) (size 1.7272 1.7272) (drill 1.016) (layers *.Cu *.Mask F.SilkS))
|
||||
(pad 39 thru_hole oval (at 0 48.26) (size 1.7272 1.7272) (drill 1.016) (layers *.Cu *.Mask F.SilkS))
|
||||
(pad 40 thru_hole oval (at 2.54 48.26) (size 1.7272 1.7272) (drill 1.016) (layers *.Cu *.Mask F.SilkS))
|
||||
(model Pin_Headers.3dshapes/Pin_Header_Straight_2x20.wrl
|
||||
(at (xyz 0.05 -0.95 0))
|
||||
(scale (xyz 1 1 1))
|
||||
(rotate (xyz 0 0 90))
|
||||
)
|
||||
)
|
||||
20
samples/KiCad Layout/Resistor_Horizontal_RM7mm.kicad_mod
Normal file
20
samples/KiCad Layout/Resistor_Horizontal_RM7mm.kicad_mod
Normal file
@@ -0,0 +1,20 @@
|
||||
(module footprints:Resistor_Horizontal_RM7mm (layer F.Cu) (tedit 569FCF07)
|
||||
(descr "Resistor, Axial, RM 7.62mm, 1/3W,")
|
||||
(tags "Resistor Axial RM 7.62mm 1/3W R3")
|
||||
(fp_text reference R18 (at 4.05892 -3.50012) (layer F.SilkS)
|
||||
(effects (font (size 1 1) (thickness 0.15)))
|
||||
)
|
||||
(fp_text value 680 (at 3.81 3.81) (layer F.Fab)
|
||||
(effects (font (size 1 1) (thickness 0.15)))
|
||||
)
|
||||
(fp_line (start -1.25 -1.5) (end 8.85 -1.5) (layer F.CrtYd) (width 0.05))
|
||||
(fp_line (start -1.25 1.5) (end -1.25 -1.5) (layer F.CrtYd) (width 0.05))
|
||||
(fp_line (start 8.85 -1.5) (end 8.85 1.5) (layer F.CrtYd) (width 0.05))
|
||||
(fp_line (start -1.25 1.5) (end 8.85 1.5) (layer F.CrtYd) (width 0.05))
|
||||
(fp_line (start 1.27 -1.27) (end 6.35 -1.27) (layer F.SilkS) (width 0.15))
|
||||
(fp_line (start 6.35 -1.27) (end 6.35 1.27) (layer F.SilkS) (width 0.15))
|
||||
(fp_line (start 6.35 1.27) (end 1.27 1.27) (layer F.SilkS) (width 0.15))
|
||||
(fp_line (start 1.27 1.27) (end 1.27 -1.27) (layer F.SilkS) (width 0.15))
|
||||
(pad 1 thru_hole circle (at 0 0) (size 1.99898 1.99898) (drill 1.00076) (layers *.Cu *.SilkS *.Mask))
|
||||
(pad 2 thru_hole circle (at 7.62 0) (size 1.99898 1.99898) (drill 1.00076) (layers *.Cu *.SilkS *.Mask))
|
||||
)
|
||||
17
samples/KiCad Layout/SW_PUSH_SMALL.kicad_mod
Normal file
17
samples/KiCad Layout/SW_PUSH_SMALL.kicad_mod
Normal file
@@ -0,0 +1,17 @@
|
||||
(module footprints:SW_PUSH_SMALL (layer F.Cu) (tedit 0)
|
||||
(fp_text reference SW7 (at 0 -0.762) (layer F.SilkS)
|
||||
(effects (font (size 1 1) (thickness 0.15)))
|
||||
)
|
||||
(fp_text value SW_PUSH (at 0 1.016) (layer F.Fab)
|
||||
(effects (font (size 1 1) (thickness 0.15)))
|
||||
)
|
||||
(fp_circle (center 0 0) (end 0 -2.54) (layer F.SilkS) (width 0.15))
|
||||
(fp_line (start -3.81 -3.81) (end 3.81 -3.81) (layer F.SilkS) (width 0.15))
|
||||
(fp_line (start 3.81 -3.81) (end 3.81 3.81) (layer F.SilkS) (width 0.15))
|
||||
(fp_line (start 3.81 3.81) (end -3.81 3.81) (layer F.SilkS) (width 0.15))
|
||||
(fp_line (start -3.81 -3.81) (end -3.81 3.81) (layer F.SilkS) (width 0.15))
|
||||
(pad 1 thru_hole circle (at 3.81 -2.54) (size 1.397 1.397) (drill 0.8128) (layers *.Cu *.Mask F.SilkS))
|
||||
(pad 2 thru_hole circle (at 3.81 2.54) (size 1.397 1.397) (drill 0.8128) (layers *.Cu *.Mask F.SilkS))
|
||||
(pad 1 thru_hole circle (at -3.81 -2.54) (size 1.397 1.397) (drill 0.8128) (layers *.Cu *.Mask F.SilkS))
|
||||
(pad 2 thru_hole circle (at -3.81 2.54) (size 1.397 1.397) (drill 0.8128) (layers *.Cu *.Mask F.SilkS))
|
||||
)
|
||||
25
samples/KiCad Layout/TO-92_Molded_Narrow.kicad_mod
Normal file
25
samples/KiCad Layout/TO-92_Molded_Narrow.kicad_mod
Normal file
@@ -0,0 +1,25 @@
|
||||
(module footprints:TO-92_Molded_Narrow (layer F.Cu) (tedit 54F242E1)
|
||||
(descr "TO-92 leads molded, narrow, drill 0.6mm (see NXP sot054_po.pdf)")
|
||||
(tags "to-92 sc-43 sc-43a sot54 PA33 transistor")
|
||||
(fp_text reference Q5 (at 0 -4) (layer F.SilkS)
|
||||
(effects (font (size 1 1) (thickness 0.15)))
|
||||
)
|
||||
(fp_text value BC547 (at 0 3) (layer F.Fab)
|
||||
(effects (font (size 1 1) (thickness 0.15)))
|
||||
)
|
||||
(fp_line (start -1.4 1.95) (end -1.4 -2.65) (layer F.CrtYd) (width 0.05))
|
||||
(fp_line (start -1.4 1.95) (end 3.9 1.95) (layer F.CrtYd) (width 0.05))
|
||||
(fp_line (start -0.43 1.7) (end 2.97 1.7) (layer F.SilkS) (width 0.15))
|
||||
(fp_arc (start 1.27 0) (end 1.27 -2.4) (angle -135) (layer F.SilkS) (width 0.15))
|
||||
(fp_arc (start 1.27 0) (end 1.27 -2.4) (angle 135) (layer F.SilkS) (width 0.15))
|
||||
(fp_line (start -1.4 -2.65) (end 3.9 -2.65) (layer F.CrtYd) (width 0.05))
|
||||
(fp_line (start 3.9 1.95) (end 3.9 -2.65) (layer F.CrtYd) (width 0.05))
|
||||
(pad 2 thru_hole circle (at 1.27 -1.27 90) (size 1.00076 1.00076) (drill 0.6) (layers *.Cu *.Mask F.SilkS))
|
||||
(pad 3 thru_hole circle (at 2.54 0 90) (size 1.00076 1.00076) (drill 0.6) (layers *.Cu *.Mask F.SilkS))
|
||||
(pad 1 thru_hole circle (at 0 0 90) (size 1.00076 1.00076) (drill 0.6) (layers *.Cu *.Mask F.SilkS))
|
||||
(model TO_SOT_Packages_THT.3dshapes/TO-92_Molded_Narrow.wrl
|
||||
(at (xyz 0.05 0 0))
|
||||
(scale (xyz 1 1 1))
|
||||
(rotate (xyz 0 0 -90))
|
||||
)
|
||||
)
|
||||
95
samples/KiCad Layout/filenames/fp-lib-table
Normal file
95
samples/KiCad Layout/filenames/fp-lib-table
Normal file
@@ -0,0 +1,95 @@
|
||||
(fp_lib_table
|
||||
(lib (name Air_Coils_SML_NEOSID)(type Github)(uri ${KIGITHUB}/Air_Coils_SML_NEOSID.pretty)(options "")(descr "Deprecated - will be removed"))
|
||||
(lib (name Buttons_Switches_SMD)(type Github)(uri ${KIGITHUB}/Buttons_Switches_SMD.pretty)(options "")(descr "Buttons and switches, surface mount"))
|
||||
(lib (name Buttons_Switches_THT)(type Github)(uri ${KIGITHUB}/Buttons_Switches_THT.pretty)(options "")(descr "Buttons and switches, through hole"))
|
||||
(lib (name Buzzers_Beepers)(type Github)(uri ${KIGITHUB}/Buzzers_Beepers.pretty)(options "")(descr "Audio signalling devices"))
|
||||
(lib (name Capacitors_SMD)(type Github)(uri ${KIGITHUB}/Capacitors_SMD.pretty)(options "")(descr "Capacitors, surface mount"))
|
||||
(lib (name Capacitors_Tantalum_SMD)(type Github)(uri ${KIGITHUB}/Capacitors_Tantalum_SMD.pretty)(options "")(descr "Tantalum capacitors, surface mount"))
|
||||
(lib (name Capacitors_THT)(type Github)(uri ${KIGITHUB}/Capacitors_THT.pretty)(options "")(descr "Capacitors, through hole"))
|
||||
(lib (name Choke_Axial_ThroughHole)(type Github)(uri ${KIGITHUB}/Choke_Axial_ThroughHole.pretty)(options "")(descr "Deprecated - will be removed"))
|
||||
(lib (name Choke_Common-Mode_Wurth)(type Github)(uri ${KIGITHUB}/Choke_Common-Mode_Wurth.pretty)(options "")(descr "Deprecated - will be removed"))
|
||||
(lib (name Choke_Radial_ThroughHole)(type Github)(uri ${KIGITHUB}/Choke_Radial_ThroughHole.pretty)(options "")(descr "Deprecated - will be removed"))
|
||||
(lib (name Choke_SMD)(type Github)(uri ${KIGITHUB}/Choke_SMD.pretty)(options "")(descr "Deprecated - will be removed"))
|
||||
(lib (name Choke_Toroid_ThroughHole)(type Github)(uri ${KIGITHUB}/Choke_Toroid_ThroughHole.pretty)(options "")(descr "Deprecated - will be removed"))
|
||||
(lib (name Connectors_Harwin)(type Github)(uri ${KIGITHUB}/Connectors_Harwin.pretty)(options "")(descr "Harwin connector footprints www.harwin.com"))
|
||||
(lib (name Connectors_Hirose)(type Github)(uri ${KIGITHUB}/Connectors_Hirose.pretty)(options "")(descr "Hirose connector footprints www.hirose.com"))
|
||||
(lib (name Connectors_JAE)(type Github)(uri ${KIGITHUB}/Connectors_JAE.pretty)(options "")(descr "JAE connector footprints http://www.jae.com/jccom/en/connectors"))
|
||||
(lib (name Connectors_JST)(type Github)(uri ${KIGITHUB}/Connectors_JST.pretty)(options "")(descr "JST connector footprints www.jst.com"))
|
||||
(lib (name Connectors_Mini-Universal)(type Github)(uri ${KIGITHUB}/Connectors_Mini-Universal.pretty)(options "")(descr Mate-N-Lok))
|
||||
(lib (name Connectors_Molex)(type Github)(uri ${KIGITHUB}/Connectors_Molex.pretty)(options "")(descr "Molex connector foottprints www.molex.com"))
|
||||
(lib (name Connectors_Multicomp)(type Github)(uri ${KIGITHUB}/Connectors_Multicomp.pretty)(options "")(descr "Multicomp connector footprints"))
|
||||
(lib (name Connectors_Phoenix)(type Github)(uri ${KIGITHUB}/Connectors_Phoenix.pretty)(options "")(descr "Phoenix connector footprints"))
|
||||
(lib (name Connectors_Samtec)(type Github)(uri ${KIGITHUB}/Connectors_Samtec.pretty)(options "")(descr "Samtec connector footprints"))
|
||||
(lib (name Connectors_TE-Connectivity)(type Github)(uri ${KIGITHUB}/Connectors_TE-Connectivity.pretty)(options "")(descr "TE Connectivity connector footprints www.te.com"))
|
||||
(lib (name Connectors_Terminal_Blocks)(type Github)(uri ${KIGITHUB}/Connectors_Terminal_Blocks.pretty)(options "")(descr "Terminal block connectors"))
|
||||
(lib (name Connectors_WAGO)(type Github)(uri ${KIGITHUB}/Connectors_WAGO.pretty)(options "")(descr "WAGO connector footprints www.wago.com"))
|
||||
(lib (name Connectors)(type Github)(uri ${KIGITHUB}/Connectors.pretty)(options "")(descr "Assorted connector footprints"))
|
||||
(lib (name Converters_DCDC_ACDC)(type Github)(uri ${KIGITHUB}/Converters_DCDC_ACDC.pretty)(options "")(descr "DC-DC and AC-DC convertor modules"))
|
||||
(lib (name Crystals)(type Github)(uri ${KIGITHUB}/Crystals.pretty)(options "")(descr "Crystals and oscillators"))
|
||||
(lib (name Diodes_SMD)(type Github)(uri ${KIGITHUB}/Diodes_SMD.pretty)(options "")(descr "Diodes, surface mount"))
|
||||
(lib (name Diodes_THT)(type Github)(uri ${KIGITHUB}/Diodes_THT.pretty)(options "")(descr "Diodes, through hole"))
|
||||
(lib (name Discret)(type Github)(uri ${KIGITHUB}/Discret.pretty)(options "")(descr "Deprecated - will be removed"))
|
||||
(lib (name Displays_7-Segment)(type Github)(uri ${KIGITHUB}/Displays_7-Segment.pretty)(options "")(descr "Seven segment displays"))
|
||||
(lib (name Displays)(type Github)(uri ${KIGITHUB}/Displays.pretty)(options "")(descr "Display modules"))
|
||||
(lib (name Divers)(type Github)(uri ${KIGITHUB}/Divers.pretty)(options "")(descr "Deprecated - will be removed"))
|
||||
(lib (name Enclosures)(type Github)(uri ${KIGITHUB}/Enclosures.pretty)(options "")(descr "Electronics enclosures and housings"))
|
||||
(lib (name EuroBoard_Outline)(type Github)(uri ${KIGITHUB}/EuroBoard_Outline.pretty)(options "")(descr "Deprecated - will be removed"))
|
||||
(lib (name Fiducials)(type Github)(uri ${KIGITHUB}/Fiducials.pretty)(options "")(descr "Fiducial markings"))
|
||||
(lib (name Filters_HF_Coils_NEOSID)(type Github)(uri ${KIGITHUB}/Filters_HF_Coils_NEOSID.pretty)(options "")(descr "Deprecated - will be removed"))
|
||||
(lib (name Fuse_Holders_and_Fuses)(type Github)(uri ${KIGITHUB}/Fuse_Holders_and_Fuses.pretty)(options "")(descr "Fuses and fuse holders"))
|
||||
(lib (name Hall-Effect_Transducers_LEM)(type Github)(uri ${KIGITHUB}/Hall-Effect_Transducers_LEM.pretty)(options "")(descr "LEM hall effect transducers"))
|
||||
(lib (name Heatsinks)(type Github)(uri ${KIGITHUB}/Heatsinks.pretty)(options "")(descr "Heatsinks and thermal products"))
|
||||
(lib (name Housings_BGA)(type Github)(uri ${KIGITHUB}/Housings_BGA.pretty)(options "")(descr "Ball Grid Array (BGA)"))
|
||||
(lib (name Housings_DFN_QFN)(type Github)(uri ${KIGITHUB}/Housings_DFN_QFN.pretty)(options "")(descr "Surface mount IC packages, DFN / LGA / QFN"))
|
||||
(lib (name Housings_DIP)(type Github)(uri ${KIGITHUB}/Housings_DIP.pretty)(options "")(descr "Through hole IC packages, DIP"))
|
||||
(lib (name Housings_LCC)(type Github)(uri ${KIGITHUB}/Housings_LCC.pretty)(options "")(descr "Leaded Chip Carriers (LCC)"))
|
||||
(lib (name Housings_LGA)(type Github)(uri ${KIGITHUB}/Housings_LGA.pretty)(options "")(descr "Land Grid Array (LGA)"))
|
||||
(lib (name Housings_PGA)(type Github)(uri ${KIGITHUB}/Housings_PGA.pretty)(options "")(descr "Pin Grid Array (PGA)"))
|
||||
(lib (name Housings_QFP)(type Github)(uri ${KIGITHUB}/Housings_QFP.pretty)(options "")(descr "Quad Flat Package (QFP)"))
|
||||
(lib (name Housings_SIP)(type Github)(uri ${KIGITHUB}/Housings_SIP.pretty)(options "")(descr "Single Inline Package (SIP)"))
|
||||
(lib (name Housings_SOIC)(type Github)(uri ${KIGITHUB}/Housings_SOIC.pretty)(options "")(descr "Small Outline Integrated Circuits (SOIC)"))
|
||||
(lib (name Housings_SSOP)(type Github)(uri ${KIGITHUB}/Housings_SSOP.pretty)(options "")(descr "SSOP, TSSOP, MSOP, QSOP, VSO packages"))
|
||||
(lib (name Inductors_NEOSID)(type Github)(uri ${KIGITHUB}/Inductors_NEOSID.pretty)(options "")(descr "Deprecated - will be removed"))
|
||||
(lib (name Inductors)(type Github)(uri ${KIGITHUB}/Inductors.pretty)(options "")(descr "Deprecated - will be removed"))
|
||||
(lib (name Inductors_SMD)(type Github)(uri ${KIGITHUB}/Inductors_SMD.pretty)(options "")(descr "Inductors, surface mount"))
|
||||
(lib (name Inductors_THT)(type Github)(uri ${KIGITHUB}/Inductors_THT.pretty)(options "")(descr "Inductors, through hole"))
|
||||
(lib (name IR-DirectFETs)(type Github)(uri ${KIGITHUB}/IR-DirectFETs.pretty)(options "")(descr "DirectFet packets from International Rectifier"))
|
||||
(lib (name Labels)(type Github)(uri ${KIGITHUB}/Labels.pretty)(options "")(descr "Deprecated - will be removed"))
|
||||
(lib (name LEDs)(type Github)(uri ${KIGITHUB}/LEDs.pretty)(options "")(descr "Light emitting diodes (LEDs)"))
|
||||
(lib (name Measurement_Points)(type Github)(uri ${KIGITHUB}/Measurement_Points.pretty)(options "")(descr "Terminals for test equipment"))
|
||||
(lib (name Measurement_Scales)(type Github)(uri ${KIGITHUB}/Measurement_Scales.pretty)(options "")(descr "Measurement scales and gauges"))
|
||||
(lib (name Mechanical_Sockets)(type Github)(uri ${KIGITHUB}/Mechanical_Sockets.pretty)(options "")(descr "Sockets for board to board connection"))
|
||||
(lib (name Microwave)(type Github)(uri ${KIGITHUB}/Microwave.pretty)(options "")(descr "Microwave"))
|
||||
(lib (name Modules)(type Github)(uri ${KIGITHUB}/Modules.pretty)(options "")(descr "Board-level devices integrating system functionality into a single module"))
|
||||
(lib (name Mounting_Holes)(type Github)(uri ${KIGITHUB}/Mounting_Holes.pretty)(options "")(descr "Mechanical fasteners"))
|
||||
(lib (name NF-Transformers_ETAL)(type Github)(uri ${KIGITHUB}/NF-Transformers_ETAL.pretty)(options "")(descr "Deprecated - will be deleted"))
|
||||
(lib (name Oddities)(type Github)(uri ${KIGITHUB}/Oddities.pretty)(options "")(descr "Assorted footprints. Deprecated - will be removed"))
|
||||
(lib (name Opto-Devices)(type Github)(uri ${KIGITHUB}/Opto-Devices.pretty)(options "")(descr "Optocouplers, light sensors, and other optical devices"))
|
||||
(lib (name Oscillators)(type Github)(uri ${KIGITHUB}/Oscillators.pretty)(options "")(descr "Precicision oscillator modules"))
|
||||
(lib (name PFF_PSF_PSS_Leadforms)(type Github)(uri ${KIGITHUB}/PFF_PSF_PSS_Leadforms.pretty)(options "")(descr "Allegro leadform packages"))
|
||||
(lib (name Pin_Headers)(type Github)(uri ${KIGITHUB}/Pin_Headers.pretty)(options "")(descr "Male pin headers"))
|
||||
(lib (name Potentiometers)(type Github)(uri ${KIGITHUB}/Potentiometers.pretty)(options "")(descr "Potentiometers / variable resistors"))
|
||||
(lib (name Power_Integrations)(type Github)(uri ${KIGITHUB}/Power_Integrations.pretty)(options "")(descr "Power Integrations footprints"))
|
||||
(lib (name Relays_THT)(type Github)(uri ${KIGITHUB}/Relays_THT.pretty)(options "")(descr "Through hole relay packages"))
|
||||
(lib (name Resistors_SMD)(type Github)(uri ${KIGITHUB}/Resistors_SMD.pretty)(options "")(descr "Resistors, surface mount"))
|
||||
(lib (name Resistors_THT)(type Github)(uri ${KIGITHUB}/Resistors_THT.pretty)(options "")(descr "Resistors, through hole"))
|
||||
(lib (name Resistors_Universal)(type Github)(uri ${KIGITHUB}/Resistors_Universal.pretty)(options "")(descr Experimental))
|
||||
(lib (name RF_Modules)(type Github)(uri ${KIGITHUB}/RF_Modules.pretty)(options "")(descr "Radio-frequency / wireless modules"))
|
||||
(lib (name Shielding_Cabinets)(type Github)(uri ${KIGITHUB}/Shielding_Cabinets.pretty)(options "")(descr "RF / EMI shields"))
|
||||
(lib (name SMD_Packages)(type Github)(uri ${KIGITHUB}/SMD_Packages.pretty)(options "")(descr "Various SMD packages. Read only - footprints will be moved to other libraries"))
|
||||
(lib (name Sockets_MOLEX_KK-System)(type Github)(uri ${KIGITHUB}/Sockets_MOLEX_KK-System.pretty)(options "")(descr "Deprecated - will be removed"))
|
||||
(lib (name Socket_Strips)(type Github)(uri ${KIGITHUB}/Socket_Strips.pretty)(options "")(descr "Female socket strips"))
|
||||
(lib (name Sockets)(type Github)(uri ${KIGITHUB}/Sockets.pretty)(options "")(descr "IC sockets"))
|
||||
(lib (name Symbols)(type Github)(uri ${KIGITHUB}/Symbols.pretty)(options "")(descr "PCB symbols"))
|
||||
(lib (name TO_SOT_Packages_SMD)(type Github)(uri ${KIGITHUB}/TO_SOT_Packages_SMD.pretty)(options "")(descr "Surface mount transistor packages"))
|
||||
(lib (name TO_SOT_Packages_THT)(type Github)(uri ${KIGITHUB}/TO_SOT_Packages_THT.pretty)(options "")(descr "Through hole transistor packages"))
|
||||
(lib (name Transformers_CHK)(type Github)(uri ${KIGITHUB}/Transformers_CHK.pretty)(options "")(descr "Deprecated - will be removed"))
|
||||
(lib (name Transformers_SMD)(type Github)(uri ${KIGITHUB}/Transformers_SMD.pretty)(options "")(descr "Surface mount transformers"))
|
||||
(lib (name Transformers_SMPS_ThroughHole)(type Github)(uri ${KIGITHUB}/Transformers_SMPS_ThroughHole.pretty)(options "")(descr "Deprecated - will be removed"))
|
||||
(lib (name Transformers_THT)(type Github)(uri ${KIGITHUB}/Transformers_THT.pretty)(options "")(descr "Through hole transformers"))
|
||||
(lib (name Transistors_OldSowjetAera)(type Github)(uri ${KIGITHUB}/Transistors_OldSowjetAera.pretty)(options "")(descr "Sowjet transistors"))
|
||||
(lib (name Valves)(type Github)(uri ${KIGITHUB}/Valves.pretty)(options "")(descr "Valves"))
|
||||
(lib (name Varistors)(type Github)(uri ${KIGITHUB}/Varistors.pretty)(options "")(descr "Varistors"))
|
||||
(lib (name Wire_Connections_Bridges)(type Github)(uri ${KIGITHUB}/Wire_Connections_Bridges.pretty)(options "")(descr "PCB bridging points"))
|
||||
(lib (name Wire_Pads)(type Github)(uri ${KIGITHUB}/Wire_Pads.pretty)(options "")(descr "Direct wire-to-board connection points"))
|
||||
)
|
||||
34
samples/KiCad Layout/kivicad.kicad_wks
Normal file
34
samples/KiCad Layout/kivicad.kicad_wks
Normal file
@@ -0,0 +1,34 @@
|
||||
( page_layout
|
||||
( setup (textsize 1.5 1.5) (linewidth 0.15) (textlinewidth 0.15) )
|
||||
( rect (comment "rect around the title block") (linewidth 0.15) (start 110 34) (end 2 2) )
|
||||
( rect (start 0 0 ltcorner) (end 0 0 rbcorner) (repeat 2) (incrx 2) (incry 2) )
|
||||
( line (start 50 2 ltcorner) (end 50 0 ltcorner) (repeat 30) (incrx 50) )
|
||||
( tbtext "1" (pos 25 1 ltcorner) (font (size 1.3 1.3))(repeat 100) (incrx 50) )
|
||||
( line (start 50 2 lbcorner) (end 50 0 lbcorner) (repeat 30) (incrx 50) )
|
||||
( tbtext "1" (pos 25 1 lbcorner) (font (size 1.3 1.3)) (repeat 100) (incrx 50) )
|
||||
( line (start 0 50 ltcorner) (end 2 50 ltcorner) (repeat 30) (incry 50) )
|
||||
( tbtext "A" (pos 1 25 ltcorner) (font (size 1.3 1.3))
|
||||
(justify center)(repeat 100) (incry 50) )
|
||||
( line (start 0 50 rtcorner) (end 2 50 rtcorner) (repeat 30) (incry 50) )
|
||||
( tbtext "A" (pos 1 25 rtcorner) (font (size 1.3 1.3))
|
||||
(justify center) (repeat 100) (incry 50) )
|
||||
( tbtext "Date: %D" (pos 87 6.9) )
|
||||
( line (start 110 5.5) (end 2 5.5) )
|
||||
( tbtext "%K" (pos 109 4.1) (comment "Kicad version" ) )
|
||||
( line (start 110 8.5) (end 2 8.5) )
|
||||
( tbtext "Rev: %R" (pos 24 6.9)(font bold)(justify left) )
|
||||
( tbtext "Size: %Z" (comment "Paper format name")(pos 109 6.9) )
|
||||
( tbtext "Id: %S/%N" (comment "Sheet id")(pos 24 4.1) )
|
||||
( line (start 110 12.5) (end 2 12.5) )
|
||||
( tbtext "Title: %T" (pos 109 10.7)(font bold (size 2 2)) )
|
||||
( tbtext "File: %F" (pos 109 14.3) )
|
||||
( line (start 110 18.5) (end 2 18.5) )
|
||||
( tbtext "Sheet: %P" (pos 109 17) )
|
||||
( tbtext "%Y" (comment "Company name") (pos 109 20)(font bold) )
|
||||
( tbtext "%C0" (comment "Comment 0") (pos 109 23) )
|
||||
( tbtext "%C1" (comment "Comment 1") (pos 109 26) )
|
||||
( tbtext "%C2" (comment "Comment 2") (pos 109 29) )
|
||||
( tbtext "%C3" (comment "Comment 3") (pos 109 32) )
|
||||
( line (start 90 8.5) (end 90 5.5) )
|
||||
( line (start 26 8.5) (end 26 2) )
|
||||
)
|
||||
2567
samples/KiCad Layout/simonShield.kicad_pcb
Normal file
2567
samples/KiCad Layout/simonShield.kicad_pcb
Normal file
File diff suppressed because it is too large
Load Diff
519
samples/KiCad Schematic/buttons.sch
Normal file
519
samples/KiCad Schematic/buttons.sch
Normal file
@@ -0,0 +1,519 @@
|
||||
EESchema Schematic File Version 2
|
||||
LIBS:simonLib
|
||||
LIBS:power
|
||||
LIBS:simonShield-cache
|
||||
EELAYER 25 0
|
||||
EELAYER END
|
||||
$Descr A4 11693 8268
|
||||
encoding utf-8
|
||||
Sheet 2 4
|
||||
Title "Poncho Simon EDU-CIAA"
|
||||
Date "2016-07-26"
|
||||
Rev "1.0"
|
||||
Comp "Proyecto CIAA"
|
||||
Comment1 "Juan Agustin Bassi"
|
||||
Comment2 "CESE - Diseño PCB"
|
||||
Comment3 "Licencia BSD"
|
||||
Comment4 ""
|
||||
$EndDescr
|
||||
$Comp
|
||||
L SW_PUSH SW1
|
||||
U 1 1 5777DBBB
|
||||
P 3500 3000
|
||||
F 0 "SW1" H 3650 3110 50 0000 C CNN
|
||||
F 1 "SW_PUSH" H 3500 2920 50 0000 C CNN
|
||||
F 2 "simonShield:SW_PUSH_SMALL" H 3500 3000 50 0001 C CNN
|
||||
F 3 "" H 3500 3000 50 0000 C CNN
|
||||
F 4 "450-1804-ND" H 3500 3000 60 0001 C CNN "Digikey#"
|
||||
1 3500 3000
|
||||
1 0 0 -1
|
||||
$EndComp
|
||||
$Comp
|
||||
L R R1
|
||||
U 1 1 5777DBC2
|
||||
P 3150 2750
|
||||
F 0 "R1" V 3230 2750 50 0000 C CNN
|
||||
F 1 "3K3" V 3150 2750 50 0000 C CNN
|
||||
F 2 "simonShield:Resistor_Horizontal_RM7mm" V 3080 2750 50 0001 C CNN
|
||||
F 3 "" H 3150 2750 50 0000 C CNN
|
||||
F 4 "680EBK-ND" H 3150 2750 60 0001 C CNN "Digikey#"
|
||||
1 3150 2750
|
||||
-1 0 0 1
|
||||
$EndComp
|
||||
$Comp
|
||||
L GND #PWR05
|
||||
U 1 1 5777DBC9
|
||||
P 3900 3100
|
||||
F 0 "#PWR05" H 3900 2850 50 0001 C CNN
|
||||
F 1 "GND" H 3900 2950 50 0000 C CNN
|
||||
F 2 "" H 3900 3100 50 0000 C CNN
|
||||
F 3 "" H 3900 3100 50 0000 C CNN
|
||||
1 3900 3100
|
||||
1 0 0 -1
|
||||
$EndComp
|
||||
Wire Wire Line
|
||||
3150 2450 3150 2600
|
||||
Wire Wire Line
|
||||
3150 2900 3150 3000
|
||||
Wire Wire Line
|
||||
3800 3000 3900 3000
|
||||
Wire Wire Line
|
||||
3900 3000 3900 3100
|
||||
Connection ~ 3150 3000
|
||||
$Comp
|
||||
L SW_PUSH SW3
|
||||
U 1 1 5777DBDD
|
||||
P 5050 3000
|
||||
F 0 "SW3" H 5200 3110 50 0000 C CNN
|
||||
F 1 "SW_PUSH" H 5050 2920 50 0000 C CNN
|
||||
F 2 "simonShield:SW_PUSH_SMALL" H 5050 3000 50 0001 C CNN
|
||||
F 3 "" H 5050 3000 50 0000 C CNN
|
||||
F 4 "450-1804-ND" H 5050 3000 60 0001 C CNN "Digikey#"
|
||||
1 5050 3000
|
||||
1 0 0 -1
|
||||
$EndComp
|
||||
$Comp
|
||||
L GND #PWR06
|
||||
U 1 1 5777DBEB
|
||||
P 5450 3100
|
||||
F 0 "#PWR06" H 5450 2850 50 0001 C CNN
|
||||
F 1 "GND" H 5450 2950 50 0000 C CNN
|
||||
F 2 "" H 5450 3100 50 0000 C CNN
|
||||
F 3 "" H 5450 3100 50 0000 C CNN
|
||||
1 5450 3100
|
||||
1 0 0 -1
|
||||
$EndComp
|
||||
Wire Wire Line
|
||||
4700 2450 4700 2600
|
||||
Wire Wire Line
|
||||
4700 2900 4700 3000
|
||||
Wire Wire Line
|
||||
5350 3000 5450 3000
|
||||
Wire Wire Line
|
||||
5450 3000 5450 3100
|
||||
Connection ~ 4700 3000
|
||||
$Comp
|
||||
L SW_PUSH SW5
|
||||
U 1 1 5777DBFF
|
||||
P 6600 3000
|
||||
F 0 "SW5" H 6750 3110 50 0000 C CNN
|
||||
F 1 "SW_PUSH" H 6600 2920 50 0000 C CNN
|
||||
F 2 "simonShield:SW_PUSH_SMALL" H 6600 3000 50 0001 C CNN
|
||||
F 3 "" H 6600 3000 50 0000 C CNN
|
||||
F 4 "450-1804-ND" H 6600 3000 60 0001 C CNN "Digikey#"
|
||||
1 6600 3000
|
||||
1 0 0 -1
|
||||
$EndComp
|
||||
$Comp
|
||||
L GND #PWR07
|
||||
U 1 1 5777DC0D
|
||||
P 7000 3100
|
||||
F 0 "#PWR07" H 7000 2850 50 0001 C CNN
|
||||
F 1 "GND" H 7000 2950 50 0000 C CNN
|
||||
F 2 "" H 7000 3100 50 0000 C CNN
|
||||
F 3 "" H 7000 3100 50 0000 C CNN
|
||||
1 7000 3100
|
||||
1 0 0 -1
|
||||
$EndComp
|
||||
Wire Wire Line
|
||||
6250 2450 6250 2600
|
||||
Wire Wire Line
|
||||
6250 2900 6250 3000
|
||||
Wire Wire Line
|
||||
6900 3000 7000 3000
|
||||
Wire Wire Line
|
||||
7000 3000 7000 3100
|
||||
Connection ~ 6250 3000
|
||||
$Comp
|
||||
L SW_PUSH SW7
|
||||
U 1 1 5777DC21
|
||||
P 8150 3000
|
||||
F 0 "SW7" H 8300 3110 50 0000 C CNN
|
||||
F 1 "SW_PUSH" H 8150 2920 50 0000 C CNN
|
||||
F 2 "simonShield:SW_PUSH_SMALL" H 8150 3000 50 0001 C CNN
|
||||
F 3 "" H 8150 3000 50 0000 C CNN
|
||||
F 4 "450-1804-ND" H 8150 3000 60 0001 C CNN "Digikey#"
|
||||
1 8150 3000
|
||||
1 0 0 -1
|
||||
$EndComp
|
||||
$Comp
|
||||
L GND #PWR08
|
||||
U 1 1 5777DC2F
|
||||
P 8550 3100
|
||||
F 0 "#PWR08" H 8550 2850 50 0001 C CNN
|
||||
F 1 "GND" H 8550 2950 50 0000 C CNN
|
||||
F 2 "" H 8550 3100 50 0000 C CNN
|
||||
F 3 "" H 8550 3100 50 0000 C CNN
|
||||
1 8550 3100
|
||||
1 0 0 -1
|
||||
$EndComp
|
||||
Wire Wire Line
|
||||
7800 2450 7800 2600
|
||||
Wire Wire Line
|
||||
7800 2900 7800 3000
|
||||
Wire Wire Line
|
||||
8450 3000 8550 3000
|
||||
Wire Wire Line
|
||||
8550 3000 8550 3100
|
||||
Connection ~ 7800 3000
|
||||
$Comp
|
||||
L SW_PUSH SW2
|
||||
U 1 1 5777DC43
|
||||
P 3550 4350
|
||||
F 0 "SW2" H 3700 4460 50 0000 C CNN
|
||||
F 1 "SW_PUSH" H 3550 4270 50 0000 C CNN
|
||||
F 2 "simonShield:SW_PUSH_SMALL" H 3550 4350 50 0001 C CNN
|
||||
F 3 "" H 3550 4350 50 0000 C CNN
|
||||
F 4 "450-1804-ND" H 3550 4350 60 0001 C CNN "Digikey#"
|
||||
1 3550 4350
|
||||
1 0 0 -1
|
||||
$EndComp
|
||||
$Comp
|
||||
L GND #PWR09
|
||||
U 1 1 5777DC51
|
||||
P 3950 4450
|
||||
F 0 "#PWR09" H 3950 4200 50 0001 C CNN
|
||||
F 1 "GND" H 3950 4300 50 0000 C CNN
|
||||
F 2 "" H 3950 4450 50 0000 C CNN
|
||||
F 3 "" H 3950 4450 50 0000 C CNN
|
||||
1 3950 4450
|
||||
1 0 0 -1
|
||||
$EndComp
|
||||
Wire Wire Line
|
||||
3200 3800 3200 3950
|
||||
Wire Wire Line
|
||||
3200 4250 3200 4350
|
||||
Wire Wire Line
|
||||
3850 4350 3950 4350
|
||||
Wire Wire Line
|
||||
3950 4350 3950 4450
|
||||
Connection ~ 3200 4350
|
||||
$Comp
|
||||
L SW_PUSH SW4
|
||||
U 1 1 5777DC65
|
||||
P 5100 4350
|
||||
F 0 "SW4" H 5250 4460 50 0000 C CNN
|
||||
F 1 "SW_PUSH" H 5100 4270 50 0000 C CNN
|
||||
F 2 "simonShield:SW_PUSH_SMALL" H 5100 4350 50 0001 C CNN
|
||||
F 3 "" H 5100 4350 50 0000 C CNN
|
||||
F 4 "450-1804-ND" H 5100 4350 60 0001 C CNN "Digikey#"
|
||||
1 5100 4350
|
||||
1 0 0 -1
|
||||
$EndComp
|
||||
$Comp
|
||||
L GND #PWR010
|
||||
U 1 1 5777DC73
|
||||
P 5500 4450
|
||||
F 0 "#PWR010" H 5500 4200 50 0001 C CNN
|
||||
F 1 "GND" H 5500 4300 50 0000 C CNN
|
||||
F 2 "" H 5500 4450 50 0000 C CNN
|
||||
F 3 "" H 5500 4450 50 0000 C CNN
|
||||
1 5500 4450
|
||||
1 0 0 -1
|
||||
$EndComp
|
||||
Wire Wire Line
|
||||
4750 4250 4750 4350
|
||||
Wire Wire Line
|
||||
5400 4350 5500 4350
|
||||
Wire Wire Line
|
||||
5500 4350 5500 4450
|
||||
Connection ~ 4750 4350
|
||||
$Comp
|
||||
L SW_PUSH SW6
|
||||
U 1 1 5777DC87
|
||||
P 6650 4350
|
||||
F 0 "SW6" H 6800 4460 50 0000 C CNN
|
||||
F 1 "SW_PUSH" H 6650 4270 50 0000 C CNN
|
||||
F 2 "simonShield:SW_PUSH_SMALL" H 6650 4350 50 0001 C CNN
|
||||
F 3 "" H 6650 4350 50 0000 C CNN
|
||||
F 4 "450-1804-ND" H 6650 4350 60 0001 C CNN "Digikey#"
|
||||
1 6650 4350
|
||||
1 0 0 -1
|
||||
$EndComp
|
||||
$Comp
|
||||
L GND #PWR011
|
||||
U 1 1 5777DC95
|
||||
P 7050 4450
|
||||
F 0 "#PWR011" H 7050 4200 50 0001 C CNN
|
||||
F 1 "GND" H 7050 4300 50 0000 C CNN
|
||||
F 2 "" H 7050 4450 50 0000 C CNN
|
||||
F 3 "" H 7050 4450 50 0000 C CNN
|
||||
1 7050 4450
|
||||
1 0 0 -1
|
||||
$EndComp
|
||||
Wire Wire Line
|
||||
6300 3800 6300 3950
|
||||
Wire Wire Line
|
||||
6300 4250 6300 4350
|
||||
Wire Wire Line
|
||||
6950 4350 7050 4350
|
||||
Wire Wire Line
|
||||
7050 4350 7050 4450
|
||||
Connection ~ 6300 4350
|
||||
$Comp
|
||||
L SW_PUSH SW8
|
||||
U 1 1 5777DCA9
|
||||
P 8200 4350
|
||||
F 0 "SW8" H 8350 4460 50 0000 C CNN
|
||||
F 1 "SW_PUSH" H 8200 4270 50 0000 C CNN
|
||||
F 2 "simonShield:SW_PUSH_SMALL" H 8200 4350 50 0001 C CNN
|
||||
F 3 "" H 8200 4350 50 0000 C CNN
|
||||
F 4 "450-1804-ND" H 8200 4350 60 0001 C CNN "Digikey#"
|
||||
1 8200 4350
|
||||
1 0 0 -1
|
||||
$EndComp
|
||||
$Comp
|
||||
L GND #PWR012
|
||||
U 1 1 5777DCB7
|
||||
P 8600 4450
|
||||
F 0 "#PWR012" H 8600 4200 50 0001 C CNN
|
||||
F 1 "GND" H 8600 4300 50 0000 C CNN
|
||||
F 2 "" H 8600 4450 50 0000 C CNN
|
||||
F 3 "" H 8600 4450 50 0000 C CNN
|
||||
1 8600 4450
|
||||
1 0 0 -1
|
||||
$EndComp
|
||||
Wire Wire Line
|
||||
7850 3800 7850 3950
|
||||
Wire Wire Line
|
||||
7850 4250 7850 4350
|
||||
Wire Wire Line
|
||||
8500 4350 8600 4350
|
||||
Wire Wire Line
|
||||
8600 4350 8600 4450
|
||||
Connection ~ 7850 4350
|
||||
Wire Notes Line
|
||||
2400 1850 2400 4700
|
||||
Wire Notes Line
|
||||
2400 4700 8800 4700
|
||||
Wire Notes Line
|
||||
8800 4700 8800 1850
|
||||
Wire Notes Line
|
||||
8800 2150 2400 2150
|
||||
Text HLabel 2950 2800 0 60 Input ~ 0
|
||||
BTN_LED_1
|
||||
Wire Wire Line
|
||||
2950 3000 3200 3000
|
||||
Wire Wire Line
|
||||
2950 3000 2950 2800
|
||||
Text HLabel 4500 2800 0 60 Input ~ 0
|
||||
BTN_LED_2
|
||||
Text HLabel 6050 2800 0 60 Input ~ 0
|
||||
BTN_LED_3
|
||||
Text HLabel 7600 2800 0 60 Input ~ 0
|
||||
BTN_LED_4
|
||||
Wire Wire Line
|
||||
4500 3000 4750 3000
|
||||
Wire Wire Line
|
||||
4500 3000 4500 2800
|
||||
Wire Wire Line
|
||||
6050 3000 6300 3000
|
||||
Wire Wire Line
|
||||
6050 3000 6050 2800
|
||||
Wire Wire Line
|
||||
7600 3000 7850 3000
|
||||
Wire Wire Line
|
||||
7600 3000 7600 2800
|
||||
Text HLabel 3000 4150 0 60 Input ~ 0
|
||||
BTN_CFG_1
|
||||
Wire Wire Line
|
||||
3000 4350 3250 4350
|
||||
Wire Wire Line
|
||||
3000 4350 3000 4150
|
||||
Text HLabel 4550 4150 0 60 Input ~ 0
|
||||
BTN_CFG_2
|
||||
Text HLabel 6100 4150 0 60 Input ~ 0
|
||||
BTN_CFG_3
|
||||
Text HLabel 7650 4150 0 60 Input ~ 0
|
||||
BTN_CFG_4
|
||||
Wire Wire Line
|
||||
4550 4150 4550 4350
|
||||
Wire Wire Line
|
||||
4550 4350 4800 4350
|
||||
Wire Wire Line
|
||||
6100 4150 6100 4350
|
||||
Wire Wire Line
|
||||
6100 4350 6350 4350
|
||||
Wire Wire Line
|
||||
7650 4150 7650 4350
|
||||
Wire Wire Line
|
||||
7650 4350 7900 4350
|
||||
$Comp
|
||||
L R R3
|
||||
U 1 1 577967E7
|
||||
P 4700 2750
|
||||
F 0 "R3" V 4780 2750 50 0000 C CNN
|
||||
F 1 "3K3" V 4700 2750 50 0000 C CNN
|
||||
F 2 "simonShield:Resistor_Horizontal_RM7mm" V 4630 2750 50 0001 C CNN
|
||||
F 3 "" H 4700 2750 50 0000 C CNN
|
||||
F 4 "680EBK-ND" H 4700 2750 60 0001 C CNN "Digikey#"
|
||||
1 4700 2750
|
||||
-1 0 0 1
|
||||
$EndComp
|
||||
$Comp
|
||||
L R R5
|
||||
U 1 1 57796847
|
||||
P 6250 2750
|
||||
F 0 "R5" V 6330 2750 50 0000 C CNN
|
||||
F 1 "3K3" V 6250 2750 50 0000 C CNN
|
||||
F 2 "simonShield:Resistor_Horizontal_RM7mm" V 6180 2750 50 0001 C CNN
|
||||
F 3 "" H 6250 2750 50 0000 C CNN
|
||||
F 4 "680EBK-ND" H 6250 2750 60 0001 C CNN "Digikey#"
|
||||
1 6250 2750
|
||||
-1 0 0 1
|
||||
$EndComp
|
||||
$Comp
|
||||
L R R7
|
||||
U 1 1 577968BC
|
||||
P 7800 2750
|
||||
F 0 "R7" V 7880 2750 50 0000 C CNN
|
||||
F 1 "3K3" V 7800 2750 50 0000 C CNN
|
||||
F 2 "simonShield:Resistor_Horizontal_RM7mm" V 7730 2750 50 0001 C CNN
|
||||
F 3 "" H 7800 2750 50 0000 C CNN
|
||||
F 4 "680EBK-ND" H 7800 2750 60 0001 C CNN "Digikey#"
|
||||
1 7800 2750
|
||||
-1 0 0 1
|
||||
$EndComp
|
||||
$Comp
|
||||
L R R2
|
||||
U 1 1 5779693E
|
||||
P 3200 4100
|
||||
F 0 "R2" V 3280 4100 50 0000 C CNN
|
||||
F 1 "3K3" V 3200 4100 50 0000 C CNN
|
||||
F 2 "simonShield:Resistor_Horizontal_RM7mm" V 3130 4100 50 0001 C CNN
|
||||
F 3 "" H 3200 4100 50 0000 C CNN
|
||||
F 4 "680EBK-ND" H 3200 4100 60 0001 C CNN "Digikey#"
|
||||
1 3200 4100
|
||||
-1 0 0 1
|
||||
$EndComp
|
||||
$Comp
|
||||
L R R4
|
||||
U 1 1 577969F3
|
||||
P 4750 4100
|
||||
F 0 "R4" V 4830 4100 50 0000 C CNN
|
||||
F 1 "3K3" V 4750 4100 50 0000 C CNN
|
||||
F 2 "simonShield:Resistor_Horizontal_RM7mm" V 4680 4100 50 0001 C CNN
|
||||
F 3 "" H 4750 4100 50 0000 C CNN
|
||||
F 4 "680EBK-ND" H 4750 4100 60 0001 C CNN "Digikey#"
|
||||
1 4750 4100
|
||||
-1 0 0 1
|
||||
$EndComp
|
||||
$Comp
|
||||
L R R6
|
||||
U 1 1 57796A6F
|
||||
P 6300 4100
|
||||
F 0 "R6" V 6380 4100 50 0000 C CNN
|
||||
F 1 "3K3" V 6300 4100 50 0000 C CNN
|
||||
F 2 "simonShield:Resistor_Horizontal_RM7mm" V 6230 4100 50 0001 C CNN
|
||||
F 3 "" H 6300 4100 50 0000 C CNN
|
||||
F 4 "680EBK-ND" H 6300 4100 60 0001 C CNN "Digikey#"
|
||||
1 6300 4100
|
||||
-1 0 0 1
|
||||
$EndComp
|
||||
$Comp
|
||||
L R R8
|
||||
U 1 1 57796AEC
|
||||
P 7850 4100
|
||||
F 0 "R8" V 7930 4100 50 0000 C CNN
|
||||
F 1 "3K3" V 7850 4100 50 0000 C CNN
|
||||
F 2 "simonShield:Resistor_Horizontal_RM7mm" V 7780 4100 50 0001 C CNN
|
||||
F 3 "" H 7850 4100 50 0000 C CNN
|
||||
F 4 "680EBK-ND" H 7850 4100 60 0001 C CNN "Digikey#"
|
||||
1 7850 4100
|
||||
-1 0 0 1
|
||||
$EndComp
|
||||
Text Notes 5400 2050 0 60 ~ 12
|
||||
BUTTONS\n
|
||||
Wire Notes Line
|
||||
8800 1850 2400 1850
|
||||
Wire Wire Line
|
||||
4750 3950 4750 3800
|
||||
$Comp
|
||||
L VCC #PWR013
|
||||
U 1 1 5798AF98
|
||||
P 4750 3800
|
||||
F 0 "#PWR013" H 4750 3650 50 0001 C CNN
|
||||
F 1 "VCC" H 4750 3950 50 0000 C CNN
|
||||
F 2 "" H 4750 3800 50 0000 C CNN
|
||||
F 3 "" H 4750 3800 50 0000 C CNN
|
||||
1 4750 3800
|
||||
1 0 0 -1
|
||||
$EndComp
|
||||
$Comp
|
||||
L VCC #PWR014
|
||||
U 1 1 5798B8B6
|
||||
P 3200 3800
|
||||
F 0 "#PWR014" H 3200 3650 50 0001 C CNN
|
||||
F 1 "VCC" H 3200 3950 50 0000 C CNN
|
||||
F 2 "" H 3200 3800 50 0000 C CNN
|
||||
F 3 "" H 3200 3800 50 0000 C CNN
|
||||
1 3200 3800
|
||||
1 0 0 -1
|
||||
$EndComp
|
||||
$Comp
|
||||
L VCC #PWR015
|
||||
U 1 1 5798B8F1
|
||||
P 6300 3800
|
||||
F 0 "#PWR015" H 6300 3650 50 0001 C CNN
|
||||
F 1 "VCC" H 6300 3950 50 0000 C CNN
|
||||
F 2 "" H 6300 3800 50 0000 C CNN
|
||||
F 3 "" H 6300 3800 50 0000 C CNN
|
||||
1 6300 3800
|
||||
1 0 0 -1
|
||||
$EndComp
|
||||
$Comp
|
||||
L VCC #PWR016
|
||||
U 1 1 5798B9EC
|
||||
P 7850 3800
|
||||
F 0 "#PWR016" H 7850 3650 50 0001 C CNN
|
||||
F 1 "VCC" H 7850 3950 50 0000 C CNN
|
||||
F 2 "" H 7850 3800 50 0000 C CNN
|
||||
F 3 "" H 7850 3800 50 0000 C CNN
|
||||
1 7850 3800
|
||||
1 0 0 -1
|
||||
$EndComp
|
||||
$Comp
|
||||
L VCC #PWR017
|
||||
U 1 1 5798BB07
|
||||
P 7800 2450
|
||||
F 0 "#PWR017" H 7800 2300 50 0001 C CNN
|
||||
F 1 "VCC" H 7800 2600 50 0000 C CNN
|
||||
F 2 "" H 7800 2450 50 0000 C CNN
|
||||
F 3 "" H 7800 2450 50 0000 C CNN
|
||||
1 7800 2450
|
||||
1 0 0 -1
|
||||
$EndComp
|
||||
$Comp
|
||||
L VCC #PWR018
|
||||
U 1 1 5798BB42
|
||||
P 6250 2450
|
||||
F 0 "#PWR018" H 6250 2300 50 0001 C CNN
|
||||
F 1 "VCC" H 6250 2600 50 0000 C CNN
|
||||
F 2 "" H 6250 2450 50 0000 C CNN
|
||||
F 3 "" H 6250 2450 50 0000 C CNN
|
||||
1 6250 2450
|
||||
1 0 0 -1
|
||||
$EndComp
|
||||
$Comp
|
||||
L VCC #PWR019
|
||||
U 1 1 5798BB7D
|
||||
P 4700 2450
|
||||
F 0 "#PWR019" H 4700 2300 50 0001 C CNN
|
||||
F 1 "VCC" H 4700 2600 50 0000 C CNN
|
||||
F 2 "" H 4700 2450 50 0000 C CNN
|
||||
F 3 "" H 4700 2450 50 0000 C CNN
|
||||
1 4700 2450
|
||||
1 0 0 -1
|
||||
$EndComp
|
||||
$Comp
|
||||
L VCC #PWR020
|
||||
U 1 1 5798BBB8
|
||||
P 3150 2450
|
||||
F 0 "#PWR020" H 3150 2300 50 0001 C CNN
|
||||
F 1 "VCC" H 3150 2600 50 0000 C CNN
|
||||
F 2 "" H 3150 2450 50 0000 C CNN
|
||||
F 3 "" H 3150 2450 50 0000 C CNN
|
||||
1 3150 2450
|
||||
1 0 0 -1
|
||||
$EndComp
|
||||
$EndSCHEMATC
|
||||
195
samples/KiCad Schematic/buzzer.sch
Normal file
195
samples/KiCad Schematic/buzzer.sch
Normal file
@@ -0,0 +1,195 @@
|
||||
EESchema Schematic File Version 2
|
||||
LIBS:simonShield-rescue
|
||||
LIBS:simonLib
|
||||
LIBS:74xgxx
|
||||
LIBS:74xx
|
||||
LIBS:ac-dc
|
||||
LIBS:actel
|
||||
LIBS:adc-dac
|
||||
LIBS:Altera
|
||||
LIBS:analog_devices
|
||||
LIBS:analog_switches
|
||||
LIBS:atmel
|
||||
LIBS:audio
|
||||
LIBS:brooktre
|
||||
LIBS:cmos4000
|
||||
LIBS:cmos_ieee
|
||||
LIBS:conn
|
||||
LIBS:contrib
|
||||
LIBS:cypress
|
||||
LIBS:dc-dc
|
||||
LIBS:device
|
||||
LIBS:digital-audio
|
||||
LIBS:diode
|
||||
LIBS:display
|
||||
LIBS:dsp
|
||||
LIBS:elec-unifil
|
||||
LIBS:ESD_Protection
|
||||
LIBS:ftdi
|
||||
LIBS:gennum
|
||||
LIBS:graphic
|
||||
LIBS:hc11
|
||||
LIBS:intel
|
||||
LIBS:interface
|
||||
LIBS:ir
|
||||
LIBS:Lattice
|
||||
LIBS:linear
|
||||
LIBS:logo
|
||||
LIBS:maxim
|
||||
LIBS:memory
|
||||
LIBS:microchip
|
||||
LIBS:microchip_dspic33dsc
|
||||
LIBS:microchip_pic10mcu
|
||||
LIBS:microchip_pic12mcu
|
||||
LIBS:microchip_pic16mcu
|
||||
LIBS:microchip_pic18mcu
|
||||
LIBS:microchip_pic32mcu
|
||||
LIBS:microcontrollers
|
||||
LIBS:motor_drivers
|
||||
LIBS:motorola
|
||||
LIBS:msp430
|
||||
LIBS:nordicsemi
|
||||
LIBS:nxp_armmcu
|
||||
LIBS:onsemi
|
||||
LIBS:opto
|
||||
LIBS:Oscillators
|
||||
LIBS:philips
|
||||
LIBS:power
|
||||
LIBS:powerint
|
||||
LIBS:Power_Management
|
||||
LIBS:pspice
|
||||
LIBS:references
|
||||
LIBS:regul
|
||||
LIBS:relays
|
||||
LIBS:rfcom
|
||||
LIBS:sensors
|
||||
LIBS:silabs
|
||||
LIBS:siliconi
|
||||
LIBS:stm8
|
||||
LIBS:stm32
|
||||
LIBS:supertex
|
||||
LIBS:switches
|
||||
LIBS:texas
|
||||
LIBS:transf
|
||||
LIBS:transistors
|
||||
LIBS:ttl_ieee
|
||||
LIBS:valves
|
||||
LIBS:video
|
||||
LIBS:Worldsemi
|
||||
LIBS:Xicor
|
||||
LIBS:xilinx
|
||||
LIBS:Zilog
|
||||
LIBS:simonShield-cache
|
||||
EELAYER 25 0
|
||||
EELAYER END
|
||||
$Descr A4 11693 8268
|
||||
encoding utf-8
|
||||
Sheet 3 5
|
||||
Title "Poncho Simon EDU-CIAA"
|
||||
Date "2016-07-26"
|
||||
Rev "1.0"
|
||||
Comp "Proyecto CIAA"
|
||||
Comment1 "Juan Agustin Bassi"
|
||||
Comment2 "CESE - Diseño PCB"
|
||||
Comment3 "Licencia BSD"
|
||||
Comment4 ""
|
||||
$EndDescr
|
||||
$Comp
|
||||
L BUZZER U1
|
||||
U 1 1 5777FCBE
|
||||
P 5600 4150
|
||||
F 0 "U1" H 5600 4150 60 0000 C CNN
|
||||
F 1 "BUZZER" H 5600 4150 60 0000 C CNN
|
||||
F 2 "footprints:MagneticBuzzer_ProSignal_ABT-410-RC" H 5600 4150 60 0001 C CNN
|
||||
F 3 "" H 5600 4150 60 0000 C CNN
|
||||
F 4 "445-2525-1-ND" H 5600 4150 60 0001 C CNN "Digikey#"
|
||||
1 5600 4150
|
||||
0 1 1 0
|
||||
$EndComp
|
||||
$Comp
|
||||
L BC547 Q1
|
||||
U 1 1 5777FCC6
|
||||
P 5500 3350
|
||||
F 0 "Q1" H 5700 3425 50 0000 L CNN
|
||||
F 1 "BC547" H 5700 3350 50 0000 L CNN
|
||||
F 2 "simonShield:TO-92_Molded_Narrow" H 5700 3275 50 0000 L CIN
|
||||
F 3 "" H 5500 3350 50 0000 L CNN
|
||||
F 4 "BC33725TACT-ND" H 5500 3350 60 0001 C CNN "Digikey#"
|
||||
1 5500 3350
|
||||
1 0 0 -1
|
||||
$EndComp
|
||||
$Comp
|
||||
L R R9
|
||||
U 1 1 5777FCCD
|
||||
P 5050 3350
|
||||
F 0 "R9" V 5130 3350 50 0000 C CNN
|
||||
F 1 "3K3" V 5050 3350 50 0000 C CNN
|
||||
F 2 "footprints:Resistor_Horizontal_RM7mm" V 4980 3350 50 0001 C CNN
|
||||
F 3 "" H 5050 3350 50 0000 C CNN
|
||||
F 4 "680EBK-ND" H 5050 3350 60 0001 C CNN "Digikey#"
|
||||
1 5050 3350
|
||||
0 1 1 0
|
||||
$EndComp
|
||||
$Comp
|
||||
L GND #PWR017
|
||||
U 1 1 5777FCDA
|
||||
P 5600 4850
|
||||
F 0 "#PWR017" H 5600 4600 50 0001 C CNN
|
||||
F 1 "GND" H 5600 4700 50 0000 C CNN
|
||||
F 2 "" H 5600 4850 50 0000 C CNN
|
||||
F 3 "" H 5600 4850 50 0000 C CNN
|
||||
1 5600 4850
|
||||
1 0 0 -1
|
||||
$EndComp
|
||||
Wire Wire Line
|
||||
5600 2600 5600 3150
|
||||
Wire Wire Line
|
||||
5600 3550 5600 3700
|
||||
Wire Wire Line
|
||||
5600 4700 5600 4850
|
||||
Wire Wire Line
|
||||
5200 3350 5300 3350
|
||||
Text HLabel 4700 3050 0 60 Input ~ 0
|
||||
PWM
|
||||
Wire Wire Line
|
||||
4700 3050 4700 3350
|
||||
Wire Wire Line
|
||||
4700 3350 4900 3350
|
||||
$Comp
|
||||
L R R10
|
||||
U 1 1 577960FD
|
||||
P 5600 2450
|
||||
F 0 "R10" V 5680 2450 50 0000 C CNN
|
||||
F 1 "1K" H 5600 2450 50 0000 C CNN
|
||||
F 2 "footprints:Resistor_Horizontal_RM7mm" V 5530 2450 50 0001 C CNN
|
||||
F 3 "" H 5600 2450 50 0000 C CNN
|
||||
F 4 "680EBK-ND" H 5600 2450 60 0001 C CNN "Digikey#"
|
||||
1 5600 2450
|
||||
1 0 0 -1
|
||||
$EndComp
|
||||
Wire Wire Line
|
||||
5600 2100 5600 2300
|
||||
Wire Notes Line
|
||||
3800 1000 3800 5450
|
||||
Wire Notes Line
|
||||
3800 5450 7650 5450
|
||||
Wire Notes Line
|
||||
7650 5450 7650 1000
|
||||
Wire Notes Line
|
||||
7650 1350 3800 1350
|
||||
Wire Notes Line
|
||||
7650 1000 3800 1000
|
||||
Text Notes 5350 1250 0 60 ~ 12
|
||||
BUZZER CIRCUIT
|
||||
$Comp
|
||||
L VDD-RESCUE-simonShield #PWR018
|
||||
U 1 1 5777FCD4
|
||||
P 5600 2100
|
||||
F 0 "#PWR018" H 5600 1950 50 0001 C CNN
|
||||
F 1 "VDD" H 5600 2250 50 0000 C CNN
|
||||
F 2 "" H 5600 2100 50 0000 C CNN
|
||||
F 3 "" H 5600 2100 50 0000 C CNN
|
||||
1 5600 2100
|
||||
1 0 0 -1
|
||||
$EndComp
|
||||
$EndSCHEMATC
|
||||
260
samples/KiCad Schematic/ciaaConector.sch
Normal file
260
samples/KiCad Schematic/ciaaConector.sch
Normal file
@@ -0,0 +1,260 @@
|
||||
EESchema Schematic File Version 2
|
||||
LIBS:simonLib
|
||||
LIBS:power
|
||||
LIBS:simonShield-cache
|
||||
EELAYER 25 0
|
||||
EELAYER END
|
||||
$Descr A4 11693 8268
|
||||
encoding utf-8
|
||||
Sheet 4 4
|
||||
Title "Poncho Simon EDU-CIAA"
|
||||
Date "2016-07-26"
|
||||
Rev "1.0"
|
||||
Comp "Proyecto CIAA"
|
||||
Comment1 "Juan Agustin Bassi"
|
||||
Comment2 "CESE - Diseño PCB"
|
||||
Comment3 "Licencia BSD"
|
||||
Comment4 ""
|
||||
$EndDescr
|
||||
$Comp
|
||||
L GND #PWR029
|
||||
U 1 1 57781CE9
|
||||
P 3200 3000
|
||||
F 0 "#PWR029" H 3200 2750 50 0001 C CNN
|
||||
F 1 "GND" H 3200 2850 50 0000 C CNN
|
||||
F 2 "" H 3200 3000 50 0000 C CNN
|
||||
F 3 "" H 3200 3000 50 0000 C CNN
|
||||
1 3200 3000
|
||||
1 0 0 -1
|
||||
$EndComp
|
||||
$Comp
|
||||
L Conn_Poncho2P_2x_20x2 XA?
|
||||
U 2 1 57781CEF
|
||||
P 3900 3050
|
||||
AR Path="/57781CEF" Ref="XA?" Part="2"
|
||||
AR Path="/57781B52/57781CEF" Ref="XA1" Part="2"
|
||||
F 0 "XA1" H 4200 3450 60 0000 C CNN
|
||||
F 1 "Conn_Poncho2P_2x_20x2" H 4250 1350 60 0000 C CNN
|
||||
F 2 "simonShield:Conn_Poncho_SinBorde" H 3900 3050 60 0001 C CNN
|
||||
F 3 "" H 3900 3050 60 0000 C CNN
|
||||
F 4 "952-2121-ND" H 3900 3050 60 0001 C CNN "Digikey#"
|
||||
2 3900 3050
|
||||
1 0 0 -1
|
||||
$EndComp
|
||||
$Comp
|
||||
L PWR_JUMPER P1
|
||||
U 1 1 57781CF6
|
||||
P 4250 2250
|
||||
F 0 "P1" H 4250 2400 50 0000 C CNN
|
||||
F 1 "PWR_JUMPER" H 4250 2100 50 0000 C CNN
|
||||
F 2 "simonShield:Pin_Header_Straight_2x02" H 4250 1050 50 0001 C CNN
|
||||
F 3 "" H 4250 1050 50 0000 C CNN
|
||||
F 4 "952-2121-ND" H 4250 2250 60 0001 C CNN "Digikey#"
|
||||
1 4250 2250
|
||||
1 0 0 -1
|
||||
$EndComp
|
||||
NoConn ~ 4850 2850
|
||||
NoConn ~ 4850 2950
|
||||
NoConn ~ 4850 3050
|
||||
NoConn ~ 4850 3150
|
||||
NoConn ~ 4850 3250
|
||||
NoConn ~ 4850 3350
|
||||
NoConn ~ 4850 3450
|
||||
NoConn ~ 3650 4050
|
||||
NoConn ~ 3650 3950
|
||||
NoConn ~ 3650 3850
|
||||
NoConn ~ 3650 3750
|
||||
NoConn ~ 3650 3650
|
||||
NoConn ~ 3650 3550
|
||||
NoConn ~ 3650 3450
|
||||
NoConn ~ 3650 3350
|
||||
NoConn ~ 3650 3250
|
||||
NoConn ~ 3650 3050
|
||||
NoConn ~ 3650 2950
|
||||
Text HLabel 4850 3750 2 60 Input ~ 0
|
||||
BTN_CFG_1
|
||||
Text HLabel 4850 3850 2 60 Input ~ 0
|
||||
BTN_CFG_2
|
||||
Text HLabel 4850 4450 2 60 Input ~ 0
|
||||
BTN_CFG_3
|
||||
Text HLabel 4850 4650 2 60 Input ~ 0
|
||||
BTN_CFG_4
|
||||
Text HLabel 3650 4350 0 60 Input ~ 0
|
||||
LED_4
|
||||
Text HLabel 4850 4350 2 60 Input ~ 0
|
||||
LED_3
|
||||
Text HLabel 4850 4050 2 60 Input ~ 0
|
||||
LED_2
|
||||
Text HLabel 4850 3550 2 60 Input ~ 0
|
||||
LED_1
|
||||
Text HLabel 3650 4450 0 60 Input ~ 0
|
||||
BTN_LED_4
|
||||
Text HLabel 4850 4550 2 60 Input ~ 0
|
||||
BTN_LED_3
|
||||
Text HLabel 4850 3950 2 60 Input ~ 0
|
||||
BTN_LED_2
|
||||
Text HLabel 4850 3650 2 60 Input ~ 0
|
||||
BTN_LED_1
|
||||
Text HLabel 3650 3150 0 60 Input ~ 0
|
||||
PWM
|
||||
$Comp
|
||||
L Conn_Poncho2P_2x_20x2 XA1
|
||||
U 1 1 577946F6
|
||||
P 7400 3000
|
||||
F 0 "XA1" H 7700 3400 60 0000 C CNN
|
||||
F 1 "Conn_Poncho2P_2x_20x2" H 7750 1300 60 0000 C CNN
|
||||
F 2 "simonShield:Conn_Poncho_SinBorde" H 7400 3000 60 0001 C CNN
|
||||
F 3 "" H 7400 3000 60 0000 C CNN
|
||||
F 4 "952-2121-ND" H 7400 3000 60 0001 C CNN "Digikey#"
|
||||
1 7400 3000
|
||||
1 0 0 -1
|
||||
$EndComp
|
||||
NoConn ~ 7150 2700
|
||||
NoConn ~ 7150 2800
|
||||
NoConn ~ 7150 2900
|
||||
NoConn ~ 7150 3000
|
||||
NoConn ~ 7150 3100
|
||||
NoConn ~ 7150 3200
|
||||
NoConn ~ 7150 3300
|
||||
NoConn ~ 7150 3400
|
||||
NoConn ~ 7150 3500
|
||||
NoConn ~ 7150 3600
|
||||
NoConn ~ 7150 3700
|
||||
NoConn ~ 7150 3800
|
||||
NoConn ~ 7150 3900
|
||||
NoConn ~ 7150 4000
|
||||
NoConn ~ 7150 4100
|
||||
NoConn ~ 7150 4200
|
||||
NoConn ~ 7150 4300
|
||||
NoConn ~ 7150 4400
|
||||
NoConn ~ 7150 4500
|
||||
NoConn ~ 7150 4600
|
||||
NoConn ~ 8350 4600
|
||||
NoConn ~ 8350 4500
|
||||
NoConn ~ 8350 4400
|
||||
NoConn ~ 8350 4300
|
||||
NoConn ~ 8350 4200
|
||||
NoConn ~ 8350 4100
|
||||
NoConn ~ 8350 4000
|
||||
NoConn ~ 8350 3900
|
||||
NoConn ~ 8350 3800
|
||||
NoConn ~ 8350 3700
|
||||
NoConn ~ 8350 3600
|
||||
NoConn ~ 8350 3500
|
||||
NoConn ~ 8350 3400
|
||||
NoConn ~ 8350 3300
|
||||
NoConn ~ 8350 3200
|
||||
NoConn ~ 8350 3100
|
||||
NoConn ~ 8350 3000
|
||||
NoConn ~ 8350 2900
|
||||
NoConn ~ 8350 2800
|
||||
NoConn ~ 8350 2700
|
||||
Text Notes 5450 1150 0 60 ~ 12
|
||||
EDU-CIAA NXP CONNECTORS
|
||||
Text Notes 4100 1300 0 60 ~ 12
|
||||
P2
|
||||
Text Notes 7700 1300 0 60 ~ 12
|
||||
P1
|
||||
$Comp
|
||||
L GND #PWR030
|
||||
U 1 1 578F601E
|
||||
P 3400 4750
|
||||
F 0 "#PWR030" H 3400 4500 50 0001 C CNN
|
||||
F 1 "GND" H 3400 4600 50 0000 C CNN
|
||||
F 2 "" H 3400 4750 50 0000 C CNN
|
||||
F 3 "" H 3400 4750 50 0000 C CNN
|
||||
1 3400 4750
|
||||
1 0 0 -1
|
||||
$EndComp
|
||||
$Comp
|
||||
L GND #PWR031
|
||||
U 1 1 57781D17
|
||||
P 5150 2900
|
||||
F 0 "#PWR031" H 5150 2650 50 0001 C CNN
|
||||
F 1 "GND" H 5150 2750 50 0000 C CNN
|
||||
F 2 "" H 5150 2900 50 0000 C CNN
|
||||
F 3 "" H 5150 2900 50 0000 C CNN
|
||||
1 5150 2900
|
||||
1 0 0 -1
|
||||
$EndComp
|
||||
$Comp
|
||||
L C_100nF C1
|
||||
U 1 1 57781D10
|
||||
P 5150 2550
|
||||
F 0 "C1" H 5150 2650 40 0000 L CNN
|
||||
F 1 "C_100nF" H 5156 2465 40 0000 L CNN
|
||||
F 2 "simonShield:C_Disc_D3_P2.5" H 5188 2400 30 0001 C CNN
|
||||
F 3 "" H 5150 2550 60 0000 C CNN
|
||||
F 4 "BC1160TRND" H 5150 2550 60 0001 C CNN "Digikey#"
|
||||
1 5150 2550
|
||||
1 0 0 -1
|
||||
$EndComp
|
||||
$Comp
|
||||
L VCC #PWR032
|
||||
U 1 1 5798B140
|
||||
P 4800 2050
|
||||
F 0 "#PWR032" H 4800 1900 50 0001 C CNN
|
||||
F 1 "VCC" H 4800 2200 50 0000 C CNN
|
||||
F 2 "" H 4800 2050 50 0000 C CNN
|
||||
F 3 "" H 4800 2050 50 0000 C CNN
|
||||
1 4800 2050
|
||||
1 0 0 -1
|
||||
$EndComp
|
||||
Wire Wire Line
|
||||
4850 2750 4900 2750
|
||||
Wire Wire Line
|
||||
4900 2750 4900 2500
|
||||
Wire Wire Line
|
||||
4900 2500 3800 2500
|
||||
Wire Wire Line
|
||||
3800 2500 3800 2300
|
||||
Wire Wire Line
|
||||
3800 2300 4000 2300
|
||||
Wire Wire Line
|
||||
3650 2750 3600 2750
|
||||
Wire Wire Line
|
||||
3600 2750 3600 2200
|
||||
Wire Wire Line
|
||||
3600 2200 4000 2200
|
||||
Wire Wire Line
|
||||
3200 2850 3200 3000
|
||||
Wire Wire Line
|
||||
3650 2850 3200 2850
|
||||
Wire Notes Line
|
||||
1950 1050 1950 5450
|
||||
Wire Notes Line
|
||||
1950 5450 9850 5450
|
||||
Wire Notes Line
|
||||
9850 5450 9850 1050
|
||||
Wire Notes Line
|
||||
9850 1050 1950 1050
|
||||
Wire Notes Line
|
||||
1950 1200 9850 1200
|
||||
Wire Notes Line
|
||||
9850 1350 1950 1350
|
||||
Wire Notes Line
|
||||
6050 1200 6050 5450
|
||||
Wire Wire Line
|
||||
3650 4650 3400 4650
|
||||
Wire Wire Line
|
||||
3400 4550 3400 4750
|
||||
Wire Wire Line
|
||||
3650 4550 3400 4550
|
||||
Connection ~ 3400 4650
|
||||
Wire Wire Line
|
||||
5150 2750 5150 2900
|
||||
Wire Wire Line
|
||||
4500 2200 4800 2200
|
||||
Wire Wire Line
|
||||
4800 2300 4800 2050
|
||||
Wire Wire Line
|
||||
4500 2300 5150 2300
|
||||
Connection ~ 4800 2200
|
||||
Wire Wire Line
|
||||
5150 2300 5150 2350
|
||||
Connection ~ 4800 2300
|
||||
NoConn ~ 3650 4250
|
||||
NoConn ~ 3650 4150
|
||||
NoConn ~ 4850 4150
|
||||
NoConn ~ 4850 4250
|
||||
$EndSCHEMATC
|
||||
137
samples/KiCad Schematic/gedda-junk.sch
Normal file
137
samples/KiCad Schematic/gedda-junk.sch
Normal file
@@ -0,0 +1,137 @@
|
||||
v 20080706 2
|
||||
T 10000 20000 9 10 1 0 0 0 1
|
||||
_0_0_ 0.sym
|
||||
T 10000 19800 9 10 1 0 0 0 1
|
||||
_1_1_ 1.sym
|
||||
T 10000 19600 9 10 1 0 0 0 1
|
||||
_2_2_ 2.sym
|
||||
T 10000 19400 9 10 1 0 0 0 1
|
||||
_3_3_ 3.sym
|
||||
T 10000 19200 9 10 1 0 0 0 1
|
||||
_4_4_ 4.sym
|
||||
T 10000 19000 9 10 1 0 0 0 1
|
||||
_5_5_ 5.sym
|
||||
T 10000 18800 9 10 1 0 0 0 1
|
||||
_6_6_ 6.sym
|
||||
T 10000 18600 9 10 1 0 0 0 1
|
||||
_7_7_ 7.sym
|
||||
T 10000 18400 9 10 1 0 0 0 1
|
||||
_8_8_ 8.sym
|
||||
T 10000 18200 9 10 1 0 0 0 1
|
||||
_9_9_ 9.sym
|
||||
T 18000 17200 9 10 1 0 0 0 1
|
||||
_q_q_ q_.sym
|
||||
v 20130925 2
|
||||
C 40000 40000 0 0 0 title-B.sym
|
||||
N 43500 47000 44200 47000 4
|
||||
N 44200 47000 44200 49400 4
|
||||
N 44200 49400 41800 49400 4
|
||||
N 41800 47300 41800 49400 4
|
||||
N 41800 47300 41500 47300 4
|
||||
N 41500 47300 41500 45600 4
|
||||
N 41500 45600 41600 45600 4
|
||||
N 41600 45600 41600 44600 4
|
||||
N 41100 44600 41600 44600 4
|
||||
N 41100 44600 41100 42900 4
|
||||
N 41100 42900 42400 42900 4
|
||||
N 42400 42900 42400 43600 4
|
||||
N 42400 43600 41000 43600 4
|
||||
N 41000 43600 41000 41300 4
|
||||
U 45300 49600 45300 43900 10 0
|
||||
U 45300 43900 53800 43900 10 0
|
||||
U 53800 43900 53800 45900 10 0
|
||||
U 53800 45900 53100 45900 10 0
|
||||
U 53100 45900 53100 47300 10 0
|
||||
U 53100 47300 50500 47300 10 0
|
||||
V 48500 47400 900 3 0 0 0 -1 -1 0 -1 -1 -1 -1 -1
|
||||
P 47300 49100 50100 49100 1 0 0
|
||||
{
|
||||
T 47300 49100 5 10 0 0 0 0 1
|
||||
pintype=unknown
|
||||
T 50155 49095 5 10 1 1 0 0 1
|
||||
pinlabel=unknown
|
||||
T 50005 49145 5 10 1 1 0 6 1
|
||||
pinnumber=0
|
||||
T 47300 49100 5 10 0 0 0 0 1
|
||||
pinseq=0
|
||||
}
|
||||
P 51800 50000 51800 48500 1 0 0
|
||||
{
|
||||
T 51800 50000 5 10 0 0 0 0 1
|
||||
pintype=unknown
|
||||
T 51800 48445 5 10 1 1 90 6 1
|
||||
pinlabel=unknown
|
||||
T 51750 48595 5 10 1 1 90 0 1
|
||||
pinnumber=0
|
||||
T 51800 50000 5 10 0 0 0 0 1
|
||||
pinseq=0
|
||||
}
|
||||
P 54500 48500 54500 47900 1 0 0
|
||||
{
|
||||
T 54500 48500 5 10 0 0 0 0 1
|
||||
pintype=unknown
|
||||
T 54500 47845 5 10 1 1 90 6 1
|
||||
pinlabel=unknown
|
||||
T 54450 47995 5 10 1 1 90 0 1
|
||||
pinnumber=0
|
||||
T 54500 48500 5 10 0 0 0 0 1
|
||||
pinseq=0
|
||||
}
|
||||
C 46700 49800 1 0 0 af_output_transformer-1.sym
|
||||
{
|
||||
T 48000 52200 5 10 0 0 0 0 1
|
||||
device=AF_OUTPUT_TRANSFORMER
|
||||
T 48000 51900 5 10 1 1 0 0 1
|
||||
refdes=U?
|
||||
}
|
||||
C 42900 41300 1 0 0 af_output_transformer-1.sym
|
||||
{
|
||||
T 44200 43700 5 10 0 0 0 0 1
|
||||
device=AF_OUTPUT_TRANSFORMER
|
||||
T 44200 43400 5 10 1 1 0 0 1
|
||||
refdes=U?
|
||||
}
|
||||
T 48100 42000 9 10 1 0 0 0 1
|
||||
NFI_LOL
|
||||
C 42200 44500 1 0 0 ssrelay-spdt-lcc110-1.sym
|
||||
{
|
||||
T 42500 47100 5 10 0 0 0 0 1
|
||||
device=LCC110
|
||||
T 42500 46700 5 10 0 0 0 0 1
|
||||
symversion=0.1
|
||||
T 42500 46250 5 10 1 1 0 0 1
|
||||
refdes=U?
|
||||
T 42500 46900 5 10 0 0 0 0 1
|
||||
footprint=DIP8
|
||||
}
|
||||
U 53200 50000 53200 47900 10 0
|
||||
U 53200 47900 53700 47900 10 0
|
||||
U 53700 47900 53700 46500 10 0
|
||||
U 53700 46500 54200 46500 10 0
|
||||
U 54200 46500 54200 43800 10 0
|
||||
U 54200 43800 45500 43800 10 0
|
||||
U 45500 43800 45500 42600 10 0
|
||||
U 45500 42600 49200 42600 10 0
|
||||
U 49200 42600 49200 41500 10 0
|
||||
U 49200 41500 47700 41500 10 0
|
||||
U 47700 41500 47700 42200 10 0
|
||||
U 47700 42200 45300 42200 10 0
|
||||
U 45300 42200 45300 40500 10 0
|
||||
U 45300 40500 40900 40500 10 0
|
||||
U 40900 40500 40900 41000 10 0
|
||||
U 40900 41000 40500 41000 10 0
|
||||
U 40500 41000 40500 50300 10 0
|
||||
U 40500 50300 45800 50300 10 0
|
||||
U 45800 50300 45800 49700 10 0
|
||||
U 45800 49700 45300 49700 10 0
|
||||
U 45300 49700 45300 48100 10 0
|
||||
U 45300 48100 43600 48100 10 0
|
||||
C 42500 47400 1 0 0 switch-dip12.sym
|
||||
{
|
||||
T 42800 51700 5 10 1 1 0 0 1
|
||||
footprint=SWITCH_DIP12
|
||||
T 42800 51975 5 8 0 0 0 0 1
|
||||
device=SWITCH_DIP12
|
||||
T 42800 51350 5 10 1 1 0 0 1
|
||||
refdes=S?
|
||||
}
|
||||
176
samples/MAXScript/rolloutCreator.ms
Normal file
176
samples/MAXScript/rolloutCreator.ms
Normal file
@@ -0,0 +1,176 @@
|
||||
-------------------------------------------------------------------------------
|
||||
--
|
||||
-- File: rolloutCreator.ms
|
||||
-- Description: Localization friendly helper struct for dynamically creating rollouts
|
||||
-- By: Ravi Karra [Discreet] ravi.karra@discreet.com
|
||||
--
|
||||
-- Version: 1.01
|
||||
-- Version: 1.02 - Larry Minton [Discreet]
|
||||
-- changed <string1> += <string2> to append string1 string2
|
||||
-- added addText method
|
||||
-- Declarations:
|
||||
/*
|
||||
rolloutCreator <rollout_name> <rollout_caption> [width:] [height:]
|
||||
creates an instance of rolloutCreator, assign it to a variable
|
||||
width - width of the rollout/dialog to be created
|
||||
height - of the rollout/dialog to be created
|
||||
|
||||
eg:
|
||||
rci = rolloutCreator "myRollout" "My Rollout"
|
||||
|
||||
|
||||
.begin()
|
||||
this function needs to be called immediately after the instance is created, this does the initialization
|
||||
|
||||
.addLocal <local_name> [init:]
|
||||
<local_name>
|
||||
name of the local
|
||||
|
||||
[init:]
|
||||
what the local should be initialized to
|
||||
|
||||
.addControl <control_type> <control_name> <control_caption> [paramStr:<string>] =
|
||||
adds a control to the rollout
|
||||
|
||||
<control_type>
|
||||
can be any of named rolloutControls eg: #button, #spinner, #activeXControl etc
|
||||
|
||||
<control_name>
|
||||
variable name of the control by which it is referred eg: #btnButton
|
||||
|
||||
<control_caption>
|
||||
caption of the control "My Button"
|
||||
|
||||
[paramStr:]
|
||||
an optional string representation of all the keyword parameters that needs to be passed to the control
|
||||
eg: "width:100 height:20 align:#right"
|
||||
|
||||
eg:
|
||||
rci.addControl #button #myButton "My Button"
|
||||
|
||||
.addHandler <control_name> <event_type> [paramStr:<string>] [codeStr:<string>] [filter:<boolean>]
|
||||
adds an event handler for the controls previously added
|
||||
|
||||
<control_name>
|
||||
the variable passed during the control creation
|
||||
|
||||
<event_type>
|
||||
any of the events supported by the control, eg: #changed, #pressed, #selected
|
||||
|
||||
[paramStr:<string>]
|
||||
an optional string representation of all the positional and keyword parameters that are passed to the event
|
||||
|
||||
[codeStr:<string>]
|
||||
a string representation of the event handler code, if the string contains sub-strings, enclose them in two character '@'
|
||||
and pass on\true for the filter: parameter
|
||||
|
||||
[filter:<boolean>]
|
||||
if true, converts '@' to quote in codeStr
|
||||
|
||||
eg:
|
||||
rci.addHandler #myButton #pressed codeStr:"MessageBox @Hey@" filter:on
|
||||
will add an event handler for button named "myButton". When the button is clicked, messagebox pops up with text "hey" in it.
|
||||
|
||||
.addText <string> [filter:<boolean>]
|
||||
adds string to rollout definition. Typically used for function definitions.
|
||||
|
||||
[filter:<boolean>]
|
||||
if true, converts '@' to quote in string
|
||||
|
||||
.end()
|
||||
this function has to be called whenever all the required control and their event handler's are called. This function forms
|
||||
the rollout string, evaluates it and returns the definition which can passed to createDialog and addRollout functions.
|
||||
|
||||
Complete Example:
|
||||
rci = rolloutCreator "myRollout" "My Rollout"
|
||||
rci.begin()
|
||||
rci.addControl #button #myButton "My Button"
|
||||
rci.addHandler #myButton #pressed filter:on codeStr:"MessageBox @Isn't this cool@ title:@Wow@"
|
||||
createDialog (rci.end())
|
||||
*/
|
||||
-------------------------------------------------------------------------------
|
||||
|
||||
|
||||
if __rcCounter == undefined then global __rcCounter = 0
|
||||
struct rolloutCreator
|
||||
(
|
||||
-- variables
|
||||
name, caption, str, def, width, height, quote="\"",
|
||||
|
||||
-- functions
|
||||
fn begin =
|
||||
(
|
||||
if name == undefined then
|
||||
(
|
||||
__rcCounter += 1
|
||||
name = "rolloutCreator" + __rcCounter as string
|
||||
)
|
||||
if caption == undefined then caption = ""
|
||||
str = ""
|
||||
),
|
||||
|
||||
fn addLocal name init: =
|
||||
(
|
||||
local dStr = "\tlocal " + name as string
|
||||
if init != unsupplied then append dStr (" = " + init as string)
|
||||
append dStr "\n"
|
||||
append str dStr
|
||||
),
|
||||
|
||||
fn addControl type name caption paramStr:"" =
|
||||
(
|
||||
append str ("\t" + type as string + " " + name as string + " " + quote + caption + quote + paramStr + "\n")
|
||||
),
|
||||
|
||||
fn strFilter codeStr =
|
||||
(
|
||||
local last_is_at = codeStr[codeStr.count] == "@"
|
||||
local fltStr = filterString codeStr "@"
|
||||
local rep = "\""
|
||||
codeStr = (if (codeStr[1] == "@") then rep else "") + fltStr[1]
|
||||
for i=2 to fltStr.count do
|
||||
(
|
||||
append codeStr (rep + fltStr[i])
|
||||
)
|
||||
if last_is_at then append codeStr rep
|
||||
codeStr
|
||||
),
|
||||
|
||||
fn addHandler ctrl event paramStr:"" filter:on codeStr:"" =
|
||||
(
|
||||
if filter do codeStr = (strFilter codeStr)
|
||||
append str ("\non " + ctrl as string + " " + event as string + " " + paramStr as string + " do \n(\n" + codeStr + ";ok\n)\n")
|
||||
),
|
||||
|
||||
fn addText txt filter:on =
|
||||
(
|
||||
if filter do txt = (strFilter txt )
|
||||
append str ("\t " + txt + "\n")
|
||||
),
|
||||
|
||||
fn end =
|
||||
(
|
||||
local dStr = "rollout " + name + " " + quote + caption + quote
|
||||
if width != undefined then
|
||||
append dStr (" width:" + width as string)
|
||||
if height != undefined then
|
||||
append dStr (" height:" + height as string)
|
||||
append dStr "\n(\n"
|
||||
append dStr str
|
||||
append dStr "\n)\n"
|
||||
str = dStr
|
||||
def = execute str
|
||||
)
|
||||
)
|
||||
|
||||
/*-- Usage
|
||||
-- Create an instance of the rolloutCreator passing the name and the caption
|
||||
rfTest = rolloutCreator "rfTestN" "rfTestC" --width:300 height:100
|
||||
-- Start creating the rollout
|
||||
rfTest.begin()
|
||||
rfTest.addControl #button #myButton "My Button" -- add a button
|
||||
-- rfTest.addHandler #myButton #pressed filter:on codeStr:"MessageBox @Hey@"
|
||||
rfTest.addHandler #myButton #pressed filter:on codeStr:"MessageBox @Look to the \@Light\@ thing@"
|
||||
rfTest.end()
|
||||
createDialog rfTest.def
|
||||
*/
|
||||
248
samples/Makefile/filenames/Makefile.wat
Normal file
248
samples/Makefile/filenames/Makefile.wat
Normal file
@@ -0,0 +1,248 @@
|
||||
#
|
||||
# The FreeType Project LICENSE
|
||||
# ----------------------------
|
||||
#
|
||||
# Copyright 1996-1999 by
|
||||
# David Turner, Robert Wilhelm, and Werner Lemberg
|
||||
#
|
||||
#
|
||||
#
|
||||
# Introduction
|
||||
# ============
|
||||
#
|
||||
# The FreeType Project is distributed in several archive packages;
|
||||
# some of them may contain, in addition to the FreeType font engine,
|
||||
# various tools and contributions which rely on, or relate to, the
|
||||
# FreeType Project.
|
||||
#
|
||||
# This license applies to all files found in such packages, and
|
||||
# which do not fall under their own explicit license. The license
|
||||
# affects thus the FreeType font engine, the test programs,
|
||||
# documentation and makefiles, at the very least.
|
||||
#
|
||||
# This license was inspired by the BSD, Artistic, and IJG
|
||||
# (Independent JPEG Group) licenses, which all encourage inclusion
|
||||
# and use of free software in commercial and freeware products
|
||||
# alike. As a consequence, its main points are that:
|
||||
#
|
||||
# o We don't promise that this software works. However, we are be
|
||||
# interested in any kind of bug reports. (`as is' distribution)
|
||||
#
|
||||
# o You can use this software for whatever you want, in parts or
|
||||
# full form, without having to pay us. (`royalty-free' usage)
|
||||
#
|
||||
# o You may not pretend that you wrote this software. If you use
|
||||
# it, or only parts of it, in a program, you must acknowledge
|
||||
# somewhere in your documentation that you've used the FreeType
|
||||
# code. (`credits')
|
||||
#
|
||||
# We specifically permit and encourage the inclusion of this
|
||||
# software, with or without modifications, in commercial products,
|
||||
# provided that all warranty or liability claims are assumed by the
|
||||
# product vendor.
|
||||
#
|
||||
#
|
||||
# Legal Terms
|
||||
# ===========
|
||||
#
|
||||
# 0. Definitions
|
||||
# --------------
|
||||
#
|
||||
# Throughout this license, the terms `package', `FreeType Project',
|
||||
# and `FreeType archive' refer to the set of files originally
|
||||
# distributed by the authors (David Turner, Robert Wilhelm, and
|
||||
# Werner Lemberg) as the `FreeType project', be they named as alpha,
|
||||
# beta or final release.
|
||||
#
|
||||
# `You' refers to the licensee, or person using the project, where
|
||||
# `using' is a generic term including compiling the project's source
|
||||
# code as well as linking it to form a `program' or `executable'.
|
||||
# This program is referred to as `a program using the FreeType
|
||||
# engine'.
|
||||
#
|
||||
# This license applies to all files distributed in the original
|
||||
# FreeType archive, including all source code, binaries and
|
||||
# documentation, unless otherwise stated in the file in its
|
||||
# original, unmodified form as distributed in the original archive.
|
||||
# If you are unsure whether or not a particular file is covered by
|
||||
# this license, you must contact us to verify this.
|
||||
#
|
||||
# The FreeType project is copyright (C) 1996-1999 by David Turner,
|
||||
# Robert Wilhelm, and Werner Lemberg. All rights reserved except as
|
||||
# specified below.
|
||||
#
|
||||
# 1. No Warranty
|
||||
# --------------
|
||||
#
|
||||
# THE FREETYPE ARCHIVE IS PROVIDED `AS IS' WITHOUT WARRANTY OF ANY
|
||||
# KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO,
|
||||
# WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
|
||||
# PURPOSE. IN NO EVENT WILL ANY OF THE AUTHORS OR COPYRIGHT HOLDERS
|
||||
# BE LIABLE FOR ANY DAMAGES CAUSED BY THE USE OR THE INABILITY TO
|
||||
# USE, OF THE FREETYPE PROJECT.
|
||||
#
|
||||
# As you have not signed this license, you are not required to
|
||||
# accept it. However, as the FreeType project is copyrighted
|
||||
# material, only this license, or another one contracted with the
|
||||
# authors, grants you the right to use, distribute, and modify it.
|
||||
# Therefore, by using, distributing, or modifying the FreeType
|
||||
# project, you indicate that you understand and accept all the terms
|
||||
# of this license.
|
||||
#
|
||||
# 2. Redistribution
|
||||
# -----------------
|
||||
#
|
||||
# Redistribution and use in source and binary forms, with or without
|
||||
# modification, are permitted provided that the following conditions
|
||||
# are met:
|
||||
#
|
||||
# o Redistribution of source code must retain this license file
|
||||
# (`licence.txt') unaltered; any additions, deletions or changes
|
||||
# to the original files must be clearly indicated in
|
||||
# accompanying documentation. The copyright notices of the
|
||||
# unaltered, original files must be preserved in all copies of
|
||||
# source files.
|
||||
#
|
||||
# o Redistribution in binary form must provide a disclaimer that
|
||||
# states that the software is based in part of the work of the
|
||||
# FreeType Team, in the distribution documentation. We also
|
||||
# encourage you to put an URL to the FreeType web page in your
|
||||
# documentation, though this isn't mandatory.
|
||||
#
|
||||
# These conditions apply to any software derived from or based on
|
||||
# the FreeType code, not just the unmodified files. If you use our
|
||||
# work, you must acknowledge us. However, no fee need be paid to
|
||||
# us.
|
||||
#
|
||||
# 3. Advertising
|
||||
# --------------
|
||||
#
|
||||
# The names of FreeType's authors and contributors may not be used
|
||||
# to endorse or promote products derived from this software without
|
||||
# specific prior written permission.
|
||||
#
|
||||
# We suggest, but do not require, that you use one or more of the
|
||||
# following phrases to refer to this software in your documentation
|
||||
# or advertising materials: `FreeType Project', `FreeType Engine',
|
||||
# `FreeType library', or `FreeType Distribution'.
|
||||
#
|
||||
# 4. Contacts
|
||||
# -----------
|
||||
#
|
||||
# There are two mailing lists related to FreeType:
|
||||
#
|
||||
# o freetype@freetype.org
|
||||
#
|
||||
# Discusses general use and applications of FreeType, as well as
|
||||
# future and wanted additions to the library and distribution.
|
||||
# If you are looking for support, start in this list if you
|
||||
# haven't found anything to help you in the documentation.
|
||||
#
|
||||
# o devel@freetype.org
|
||||
#
|
||||
# Discusses bugs, as well as engine internals, design issues,
|
||||
# specific licenses, porting, etc.
|
||||
#
|
||||
# o http://www.freetype.org
|
||||
#
|
||||
# Holds the current FreeType web page, which will allow you to
|
||||
# download our latest development version and read online
|
||||
# documentation.
|
||||
#
|
||||
# You can also contact us individually at:
|
||||
#
|
||||
# David Turner <david.turner@freetype.org>
|
||||
# Robert Wilhelm <robert.wilhelm@freetype.org>
|
||||
# Werner Lemberg <werner.lemberg@freetype.org>
|
||||
#
|
||||
#
|
||||
# --- end of license ---
|
||||
#
|
||||
# This file is part of the FreeType project.
|
||||
#
|
||||
# This builds the Watcom library with Watcom's wcc386 under OS/2.
|
||||
#
|
||||
# You'll need Watcom's wmake.
|
||||
#
|
||||
#
|
||||
# Invoke by "wmake -f arch\os2\Makefile.wat" when in the "lib" directory
|
||||
#
|
||||
# This will build "freetype\lib\libttf.lib"
|
||||
|
||||
ARCH = arch\os2
|
||||
FT_MAKEFILE = $(ARCH)\Makefile.wat
|
||||
FT_MAKE = wmake -h
|
||||
|
||||
|
||||
.EXTENSIONS:
|
||||
.EXTENSIONS: .lib .obj .c .h
|
||||
.obj:.;.\extend;.\$(ARCH)
|
||||
.c:.;.\extend;.\$(ARCH)
|
||||
.h:.;.\extend;.\$(ARCH)
|
||||
|
||||
CC = wcc386
|
||||
|
||||
CCFLAGS = /otexanl+ /s /w5 /zq -Iarch\os2 -I. -Iextend
|
||||
|
||||
TTFILE = .\ttfile.c
|
||||
TTMEMORY = .\ttmemory.c
|
||||
TTMUTEX = .\ttmutex.c
|
||||
|
||||
TTFILE_OBJ = ttfile.obj
|
||||
TTMEMORY_OBJ = ttmemory.obj
|
||||
TTMUTEX_OBJ = ttmutex.obj
|
||||
|
||||
PORT = $(TTFILE) $(TTMEMORY) $(TTMUTEX)
|
||||
PORT_OBJS = $(TTFILE_OBJ) $(TTMEMORY_OBJ) $(TTMUTEX_OBJ)
|
||||
|
||||
SRC_X = extend\ftxgasp.c extend\ftxkern.c extend\ftxpost.c &
|
||||
extend\ftxcmap.c extend\ftxwidth.c extend\ftxsbit.c &
|
||||
extend\ftxgsub.c extend\ftxgpos.c extend\ftxopen.c &
|
||||
extend\ftxgdef.c
|
||||
|
||||
OBJS_X = extend\ftxgasp.obj extend\ftxkern.obj extend\ftxpost.obj &
|
||||
extend\ftxcmap.obj extend\ftxwidth.obj extend\ftxsbit.obj &
|
||||
extend\ftxgsub.obj extend\ftxgpos.obj extend\ftxopen.obj &
|
||||
extend\ftxgdef.obj
|
||||
|
||||
SRC_M = ttapi.c ttcache.c ttcalc.c ttcmap.c &
|
||||
ttgload.c ttinterp.c ttload.c ttobjs.c &
|
||||
ttraster.c ttextend.c $(PORT)
|
||||
|
||||
OBJS_M = ttapi.obj ttcache.obj ttcalc.obj ttcmap.obj &
|
||||
ttgload.obj ttinterp.obj ttload.obj ttobjs.obj &
|
||||
ttraster.obj ttextend.obj $(PORT_OBJS) $(OBJS_X)
|
||||
|
||||
SRC_S = freetype.c
|
||||
OBJ_S = freetype.obj
|
||||
OBJS_S = $(OBJ_S) $(OBJS_X)
|
||||
|
||||
|
||||
.c.obj:
|
||||
$(CC) $(CCFLAGS) $[* /fo=$[*.obj
|
||||
|
||||
all: .symbolic
|
||||
$(FT_MAKE) -f $(FT_MAKEFILE) libttf.lib
|
||||
|
||||
debug: .symbolic
|
||||
$(FT_MAKE) -f $(FT_MAKEFILE) LIB_FILES="$(OBJS_M)" libttf.lib
|
||||
|
||||
|
||||
libttf.lib: $(OBJS_M)
|
||||
wlib -q -n libttf.lib $(OBJS_M)
|
||||
|
||||
# is this correct? Know nothing about wmake and the Watcom compiler...
|
||||
$(OBJ_S): $(SRC_S) $(SRC_M)
|
||||
$(CC) $(CCFLAGS) $(SRC_S) /fo=$(OBJ_S)
|
||||
|
||||
clean: .symbolic
|
||||
@-erase $(OBJS_M)
|
||||
@-erase *.err
|
||||
|
||||
distclean: .symbolic clean
|
||||
@-erase libttf.lib
|
||||
|
||||
new: .symbolic
|
||||
@-wtouch *.c
|
||||
|
||||
# end of Makefile.wat
|
||||
20
samples/Markdown/README.mdown
Normal file
20
samples/Markdown/README.mdown
Normal file
@@ -0,0 +1,20 @@
|
||||
# Installation
|
||||
|
||||
You can install this bundle in TextMate by opening the preferences and going to the bundles tab. After installation it will be automatically updated for you.
|
||||
|
||||
# General
|
||||
|
||||
* [Bundle Styleguide](http://kb.textmate.org/bundle_styleguide) — _before you make changes_
|
||||
* [Commit Styleguide](http://kb.textmate.org/commit_styleguide) — _before you send a pull request_
|
||||
* [Writing Bug Reports](http://kb.textmate.org/writing_bug_reports) — _before you report an issue_
|
||||
|
||||
# License
|
||||
|
||||
If not otherwise specified (see below), files in this repository fall under the following license:
|
||||
|
||||
Permission to copy, use, modify, sell and distribute this
|
||||
software is granted. This software is provided "as is" without
|
||||
express or implied warranty, and with no claim as to its
|
||||
suitability for any purpose.
|
||||
|
||||
An exception is made for files in readable text which contain their own license information, or files where an accompanying file exists (in the same directory) with a “-license” suffix added to the base-name name of the original file, and an extension of txt, html, or similar. For example “tidy” is accompanied by “tidy-license.txt”.
|
||||
192
samples/Markdown/csharp6.workbook
Normal file
192
samples/Markdown/csharp6.workbook
Normal file
@@ -0,0 +1,192 @@
|
||||
---
|
||||
uti: com.xamarin.workbook
|
||||
platforms:
|
||||
- Console
|
||||
---
|
||||
|
||||
# Using C# 6
|
||||
|
||||
Some examples from Xamarin's [intro to C# 6](https://developer.xamarin.com/guides/cross-platform/advanced/csharp_six/).
|
||||
|
||||
* Null-conditional operator
|
||||
|
||||
* String Interpolation
|
||||
|
||||
* Expression-bodied Function Members
|
||||
|
||||
* Auto-property Initialization
|
||||
|
||||
* Index Initializers
|
||||
|
||||
* using static
|
||||
|
||||
## Null-conditional operator
|
||||
|
||||
The `?.` operator automatically does a null-check before referencing the
|
||||
specified member. The example string array below has a `null` entry:
|
||||
|
||||
```csharp
|
||||
var names = new string[] { "Foo", null };
|
||||
```
|
||||
|
||||
In C# 5, a null-check is required before accessing the `.Length` property:
|
||||
|
||||
```csharp
|
||||
// C# 5
|
||||
int secondLength = 0;
|
||||
if (names[1] != null)
|
||||
secondLength = names[1].Length;
|
||||
```
|
||||
|
||||
C# 6 allows the length to be queried in a single line; the entire
|
||||
statement returns `null` if any object is null.
|
||||
|
||||
```csharp
|
||||
var length0 = names[0]?.Length; // 3
|
||||
var length1 = names[1]?.Length; // null
|
||||
```
|
||||
|
||||
This can be used in conjunction with the `??` null coalescing operator
|
||||
to set a default value (such as `0`) in the example below:
|
||||
|
||||
```csharp
|
||||
var lengths = names.Select (names => names?.Length ?? 0); //[3, 0]
|
||||
```
|
||||
|
||||
## String Interpolation
|
||||
|
||||
Previously strings were built in a number of different ways:
|
||||
|
||||
```csharp
|
||||
var animal = "Monkeys";
|
||||
var food = "bananas";
|
||||
|
||||
var out1 = String.Format ("{0} love to eat {1}", animal, food);
|
||||
var out2 = animal + " love to eat " + food;
|
||||
// or even StringBuilder
|
||||
```
|
||||
|
||||
C# 6 provides a simple syntax where the fieldname can be
|
||||
embedded directly in the string:
|
||||
|
||||
```csharp
|
||||
$"{animal} love to eat {food}"
|
||||
```
|
||||
|
||||
String-formatting can also be done with this syntax:
|
||||
|
||||
```csharp
|
||||
var values = new int[] { 1, 2, 3, 4, 12, 123456 };
|
||||
foreach (var s in values.Select (i => $"The value is {i,10:N2}.")) {
|
||||
Console.WriteLine (s);
|
||||
}
|
||||
```
|
||||
|
||||
## Expression-bodied Function Members
|
||||
|
||||
The `ToString` override in the following class is an expression-bodied
|
||||
function - a more succinct declaration syntax.
|
||||
|
||||
```csharp
|
||||
class Person
|
||||
{
|
||||
public string FirstName { get; }
|
||||
public string LastName { get; }
|
||||
public Person (string firstname, string lastname)
|
||||
{
|
||||
FirstName = firstname;
|
||||
LastName = lastname;
|
||||
}
|
||||
// note there is no explicit `return` keyword
|
||||
public override string ToString () => $"{LastName}, {FirstName} {LastName}";
|
||||
}
|
||||
```
|
||||
|
||||
`void` expression bodied functions are also allowed so long as
|
||||
the expression is a statement:
|
||||
|
||||
```csharp
|
||||
public void Log(string message) => System.Console.WriteLine($"{DateTime.Now.ToString ("s", System.Globalization.CultureInfo.InvariantCulture )}: {message}");
|
||||
```
|
||||
|
||||
This simple example calls these two methods:
|
||||
|
||||
```csharp
|
||||
Log(new Person("James", "Bond").ToString())
|
||||
```
|
||||
|
||||
## Auto-property Initialization
|
||||
|
||||
Properties (ie. specified with `{get;set;}`) can be initialized inline
|
||||
with C# 6:
|
||||
|
||||
```csharp
|
||||
class Todo
|
||||
{
|
||||
public bool Done { get; set; } = false;
|
||||
public DateTime Created { get; } = DateTime.Now;
|
||||
public string Description { get; }
|
||||
|
||||
public Todo (string description)
|
||||
{
|
||||
this.Description = description; // can assign (only in constructor!)
|
||||
}
|
||||
public override string ToString () => $"'{Description}' was created on {Created}";
|
||||
}
|
||||
```
|
||||
|
||||
```csharp
|
||||
new Todo("buy apples")
|
||||
```
|
||||
|
||||
## Index Initializers
|
||||
|
||||
Dictionary-style data structures let you specify key/value
|
||||
types with a simple object-initializer-like syntax:
|
||||
|
||||
```csharp
|
||||
var userInfo = new Dictionary<string,object> {
|
||||
["Created"] = DateTime.Now,
|
||||
["Due"] = DateTime.Now.AddSeconds(60 * 60 * 24),
|
||||
["Task"] = "buy lettuce"
|
||||
};
|
||||
```
|
||||
|
||||
## using static
|
||||
|
||||
Enumerations, and certain classes such as System.Math, are primarily
|
||||
holders of static values and functions. In C# 6, you can import all
|
||||
static members of a type with a single using static statement:
|
||||
|
||||
```csharp
|
||||
using static System.Math;
|
||||
```
|
||||
|
||||
C# 6 code can then reference the static members directly, avoiding
|
||||
repetition of the class name (eg. `Math.PI` becomes `PI`):
|
||||
|
||||
```csharp
|
||||
public class Location
|
||||
{
|
||||
public Location (double lat, double @long) {Latitude = lat; Longitude = @long;}
|
||||
public double Latitude = 0; public double Longitude = 0;
|
||||
}
|
||||
static public double MilesBetween(Location loc1, Location loc2)
|
||||
{
|
||||
double rlat1 = PI * loc1.Latitude / 180;
|
||||
double rlat2 = PI * loc2.Latitude / 180;
|
||||
double theta = loc1.Longitude - loc2.Longitude;
|
||||
double rtheta = PI * theta / 180;
|
||||
double dist =
|
||||
Sin(rlat1) * Sin(rlat2) + Cos(rlat1) *
|
||||
Cos(rlat2) * Cos(rtheta);
|
||||
dist = Acos(dist);
|
||||
dist = dist*180/PI;
|
||||
dist = dist*60*1.1515;
|
||||
return dist; //miles
|
||||
}
|
||||
```
|
||||
|
||||
```csharp
|
||||
MilesBetween (new Location(-12,22), new Location(-13,33))
|
||||
```
|
||||
1
samples/Markdown/minimal.md
Normal file
1
samples/Markdown/minimal.md
Normal file
@@ -0,0 +1 @@
|
||||
_This_ is a **Markdown** readme.
|
||||
26
samples/Marko/counter.marko
Normal file
26
samples/Marko/counter.marko
Normal file
@@ -0,0 +1,26 @@
|
||||
class {
|
||||
constructor() {
|
||||
this.state = { count:0 };
|
||||
}
|
||||
increment() {
|
||||
this.state.count++;
|
||||
}
|
||||
}
|
||||
|
||||
style {
|
||||
.count {
|
||||
color:#09c;
|
||||
font-size:3em;
|
||||
}
|
||||
.example-button {
|
||||
font-size:1em;
|
||||
padding:0.5em;
|
||||
}
|
||||
}
|
||||
|
||||
<div.count>
|
||||
${state.count}
|
||||
</div>
|
||||
<button.example-button on-click('increment')>
|
||||
Click me!
|
||||
</button>
|
||||
15
samples/Marko/hello.marko
Normal file
15
samples/Marko/hello.marko
Normal file
@@ -0,0 +1,15 @@
|
||||
$ var name = 'Frank';
|
||||
$ var colors = ['red', 'green', 'blue'];
|
||||
|
||||
<h1>
|
||||
Hello ${name}!
|
||||
</h1>
|
||||
|
||||
<ul if(colors.length)>
|
||||
<li style={color: color} for(color in colors)>
|
||||
${color}
|
||||
</li>
|
||||
</ul>
|
||||
<div else>
|
||||
No colors!
|
||||
</div>
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user