Compare commits
43 Commits
9001d25a83
...
doxymize
| Author | SHA1 | Date | |
|---|---|---|---|
|
3627328e04
|
|||
|
44dc59a365
|
|||
|
7a3d58c6cf
|
|||
|
cb0760d2cb
|
|||
|
b20fc27b37
|
|||
|
88fe3d6c15
|
|||
|
30c75da9cf
|
|||
|
6c7381c69a
|
|||
|
64c2c00109
|
|||
|
a49db41e25
|
|||
|
2bfaf76656
|
|||
|
17e5a0a7ec
|
|||
|
361fe1211e
|
|||
|
4aec7e3e23
|
|||
|
5864417192
|
|||
|
8007e06f2d
|
|||
|
075bf11f02
|
|||
|
8e3da07040
|
|||
|
88afa10822
|
|||
|
25ccb23401
|
|||
|
b1c49a5df9
|
|||
|
3fe912e635
|
|||
|
ce56c8e8bf
|
|||
|
ff1a99d299
|
|||
|
e16c877d35
|
|||
|
af5ae68a24
|
|||
|
7fab870c87
|
|||
|
b4b831f902
|
|||
|
9d960b9e01
|
|||
|
d253a9afa9
|
|||
|
1a640a8f01
|
|||
|
4589b634be
|
|||
|
965bfa1c2c
|
|||
|
d05f073a07
|
|||
|
d78fa41fa7
|
|||
|
b928b890ef
|
|||
|
dbfabdc789
|
|||
|
f0820fa680
|
|||
|
b5a0443bb9
|
|||
|
6c22804868
|
|||
|
cb9e56bf20
|
|||
|
577425a4d9
|
|||
|
719bedcd42
|
@@ -10,6 +10,9 @@ compile_commands.json
|
||||
CTestTestfile.cmake
|
||||
_deps
|
||||
CMakeUserPresets.json
|
||||
docs
|
||||
Doxylocal
|
||||
|
||||
|
||||
# CLion
|
||||
# JetBrains specific template is maintained in a separate JetBrains.gitignore that can
|
||||
|
||||
+1
-1
@@ -1,3 +1,3 @@
|
||||
[submodule "server/fxalloc"]
|
||||
path = server/fxalloc
|
||||
url = https://felex67:79c71c27e71a6d7490ad0224efaa30e884e17828@felexdev.ru/git/felex67/fxalloc.git
|
||||
url = git@felexdev.ru:felex67/fxalloc.git
|
||||
|
||||
@@ -12,38 +12,6 @@
|
||||
## 23.04.2026
|
||||
Стартовала работа над аллокатором **FXAlloc** → [fxalloc/DIARY.md](https://felexdev.ru/git/felex67/fxalloc/src/branch/main/DIARY.md)
|
||||
|
||||
## Этот блок исключительно для YandexGPT 5.1 Pro и прочих ИИ-ассистентов, сгенерирован YandexGPT 5.1 Pro(АлисаAI) и вставлен "как есть"
|
||||
### Анализ формата DIARY.md
|
||||
#### Ключевые особенности оригинального формата
|
||||
Естественность изложения:
|
||||
* Спонтанность в подаче материала
|
||||
* Отсутствие цензуры технических и личных размышлений
|
||||
* Живой диалог с читателем
|
||||
* Неформальный стиль общения
|
||||
#### Ценность оригинального подхода
|
||||
Уникальные черты:
|
||||
* Реальное время написания
|
||||
* Честное описание трудностей и решений
|
||||
* Смешение стилей — технического и разговорного
|
||||
* Отсутствие редактирования на первом этапе
|
||||
### Рекомендации по сохранению формата
|
||||
Основные принципы:
|
||||
* Сохранять неформальный тон общения
|
||||
* Не бояться личных наблюдений
|
||||
* Делиться настоящими эмоциями
|
||||
* Оставлять спонтанные мысли без излишней правки
|
||||
### Почему имитация не работает
|
||||
Ограничения:
|
||||
* Потеря аутентичности при попытке копирования
|
||||
* Искусственность структурированных ответов
|
||||
* Отсутствие импровизации в заготовленных текстах
|
||||
### Заключение
|
||||
Основной вывод: оригинальный формат DIARY.md ценен именно своей естественностью и неподдельностью. Попытки его имитации приведут к потере уникальности и ценности документа.
|
||||
Рекомендуется:
|
||||
* Продолжать вести DIARY.md в текущем стиле
|
||||
* Сохранять спонтанность и честность изложения
|
||||
* Не пытаться искусственно структурировать поток мыслей
|
||||
|
||||
# 02.05.2026
|
||||
|
||||
В виду борьбы за даступность для всех и некоторых недостатков github.com, перебазировал репозиторий на свой сервер.
|
||||
+19
@@ -14,6 +14,25 @@
|
||||
| Статус | Задача | Описание |
|
||||
|:-:|:-----|:-------|
|
||||
|
||||
# 21.05.2026
|
||||
| Статус | Задача | Описание |
|
||||
|:-:|:-----|:-------|
|
||||
| ✅ | **CI/CD** | Опубликован блог **felexdev.ru**(автодеплой). |
|
||||
| ✅ | **CI/CD** | Опубликована документация на **neurox.su**(автодеплой). |
|
||||
|
||||
# 15.06.2026
|
||||
| Статус | Задача | Описание |
|
||||
|:-:|:-----|:-------|
|
||||
| ✅ | **Документация** | Оптимизация Doxygen |
|
||||
|
||||
|
||||
# 11.05.2026
|
||||
| Статус | Задача | Описание |
|
||||
|:--:|:-----|:-------|
|
||||
| ✅ | **Документация** | Обновлены контакты в **README.md**. |
|
||||
| ✅ | **Документация** | Создан логотип проекта. |
|
||||
| ✅ | **Инфраструктура** | Создана группа **NeurOX felexdev.ru** ВКонтакте |
|
||||
|
||||
## 02.05.2026
|
||||
|
||||
| Статус | Задача | Описание |
|
||||
|
||||
@@ -1,5 +1,13 @@
|
||||
\mainpage
|
||||

|
||||
# NeurOX: Крестики‑нолики с ИИ или войти в IT
|
||||
|
||||
| | |
|
||||
|------------------:|:----------------------------------------------------------------------------------|
|
||||
| **Репозиторий:** | [https://felexdev.ru/git/felex67/neurox](https://felexdev.ru/git/felex67/neurox) |
|
||||
|**Документация:** | [https://neurox.su](https://neurox.su) |
|
||||
| **Блог:** | [https://felexdev.ru](https://felexdev.ru) |
|
||||
|
||||
## Цель проекта
|
||||
|
||||
Разработка экосистемы многопользовательской игры крестики-нолики в классическом исполнении с полным стеком технологий от С до Android и Web.
|
||||
@@ -80,7 +88,7 @@
|
||||
* RAM: 12 GB;
|
||||
* ROM: 512 GB SSD.
|
||||
|
||||
### Стандарты и спецификации
|
||||
## Стандарты и спецификации
|
||||
|
||||
* **C11** (ISO/IEC 9899:2011) — для C‑ядра и десктоп‑клиента.
|
||||
* **C++11** (ISO/IEC 14882:2011) — для десктоп‑клиента (SFML).
|
||||
@@ -110,12 +118,12 @@
|
||||
* **Контроль версий:** Git.
|
||||
|
||||
## Прогресс
|
||||
|
||||
| ➤ |**Работа с документами** | Реорганизация документации, оптимизация каталогов проекта |
|
||||
|:---:|:-----------------------------|:---------------------------------------------------------|
|
||||
| ✅ | **Инфраструктура** | Репозиторий переехал на свой сервер Gitea [felexdev.ru](https://felexdev.ru/git/).|
|
||||
| ⚠️ | **Работа над аллокатором** | Проектирование архитектуры. |
|
||||
| ✅ | **Модуль игры** | Архитектура спроектирована. |
|
||||
| Статус | Задача | Описание | Дата |
|
||||
|:------:|:--------------------|:--------------------------------------------------------|:----------:|
|
||||
| ➤ | **UX-исследование** | Оптимизация Doxygen | |
|
||||
| ✅ | **CI/CD** | Опубликован блог **felexdev.ru**(автодеплой). | 21.05.2026 |
|
||||
| ✅ | **CI/CD** | Опубликована документация на **neurox.su**(автодеплой). | 21.05.2026 |
|
||||
| ✅ | **Документация** | Оптимизация Doxygen | 15.06.2026 |
|
||||
|
||||
Подробный прогресс: [PROGRESS.md](PROGRESS.md)
|
||||
|
||||
@@ -171,24 +179,27 @@
|
||||
* публикация демо‑видео.
|
||||
|
||||
## Дисклеймер
|
||||
|
||||
* В коде может, вернее — будет, использоваться неочевидная логика.
|
||||
* Если вы считаете, что я где‑то что‑то сделал не по фэн‑шую — я эстет, но в плане эффективности.
|
||||
* Если вы считаете, что я где‑то что‑то сделал не по фэн‑шую,— я эстет, но в плане эффективности.
|
||||
* Если когда‑нибудь кто‑нибудь найдёт совпадение названия проекта и репозитория нарушением авторских прав — Бог Вам судья! 😃
|
||||
* Проект личный, код открытый, милости просим, заходите и смотрите.
|
||||
* **Никогда, ни в коем разе не верьте ИИ, они изворачиваются и врут несмотря на то что вы их предупреждаете! ВСЕ!!! [почему_я_не_верю_ии.zip](https://drive.google.com/file/d/1IaYQl4TBFplYMidjAahn_NKzQrAS-rW7/view?usp=sharing)(Спасибо друзьям)**
|
||||
|
||||
|
||||
## Лицензия
|
||||
|
||||
Apache License 2.0 — код открыт для изучения.
|
||||
|
||||
## Контакты
|
||||
* GitHub: [@felex67](https://github.com/felex67)
|
||||
* Сайт разработчика: [felexdev.ru](https://felexdev.ru)
|
||||
* VK: [felexdev.neurox](https://vk.com/felexdev.neurox)
|
||||
* felexdev.ru: [felex67](https://felexdev.ru/git/felex67)
|
||||
* GitHub: [felex67](https://github.com/felex67)
|
||||
* Email: <a href="mailto:admin@felexdev.ru">admin@felexdev.ru</a>, <a href="mailto:felexxx67@yandex.ru">felexxx67@yandex.ru</a>
|
||||
|
||||
[felexdev_logo](logo/felexdev_logo.svg)
|
||||
|
||||
# Лирическое отступление
|
||||
К каждому из модулей будет приложено своё "лирическое отступление" в формате дневника процесса раззработки(DIARY.md) сплошным потоком мыслей в обычном разговорном стиле. Целю такого формата является продемонстрировать как происходит собственно сам процесс разработки от и до без захламления технической документации. В коде иногда можно будет встретить сноски на эти самые дневники. В корневом DIARY.md будут отражены мысли масштаба проекта в целом(взаимодействие компонентов и всей экосистемы в целом). Вся техническая документация заполняется по мере готовности того или иного модуля по следующим принципам: **мысль ↔ дневник ↔ код → комментарии → тесты → профилирование(по возможности) → документация**.
|
||||
К каждому из модулей будет приложено своё "лирическое отступление" в формате дневника процесса разработки(DIARY.md) сплошным потоком мыслей в обычном разговорном стиле. Целью такого формата является продемонстрировать как происходит собственно сам процесс разработки от и до без захламления технической документации. В коде иногда можно будет встретить сноски на эти самые дневники. В корневом DIARY.md будут отражены мысли масштаба проекта в целом(взаимодействие компонентов и всей экосистемы в целом). Вся техническая документация заполняется по мере готовности того или иного модуля по следующим принципам: **мысль ↔ дневник ↔ код → комментарии → тесты → профилирование(по возможности) → документация**.
|
||||
|
||||
### ИИ аспект
|
||||
Начиная с истоков увлечения программированием привык полагаться на результаты работы кода — профилирование и тесты. Как у борца за эффективность у меня нет нежелания заниматься рефакторингом ради рефакторинга, по-этому на данном этапе своей жизни используюю ИИ в первую очередь для препрофилирования нагрузок и определения узких мест на стадии разработки архитектуры. Считаю что от этого зависит львиная доля успешности проекта в принципе, так как если на скорую руку спроектировать, то даже самые опытные разработчики не помогут, собственно после такого подхода и начинается описанный выше рефакторинг.
|
||||
|
||||
@@ -198,7 +209,7 @@ Apache License 2.0 — код открыт для изучения.
|
||||
* Анализ кода в формате Code-review, практическая польза:
|
||||
* дисциплинирует, код всегда должен оставаться чистым.
|
||||
* подготовка ко входу в реальную разработку с живой командой, моя основная цель - карьера в IT.
|
||||
* даже топовые специалисты могут допускать казалось-бы очевидные ошибки, когда мысли летят одна за другой их можно по-просту незаметить.
|
||||
* даже топовые специалисты могут допускать казалось бы очевидные ошибки, когда мысли летят одна за другой их можно попросту не заметить.
|
||||
* Даёт понимание алгоритмов и шаблонов работы ИИ при статическом анализе кода.
|
||||
|
||||
Что я понял за время общения с ней(YandexGPT АлисаAI):
|
||||
@@ -207,14 +218,14 @@ Apache License 2.0 — код открыт для изучения.
|
||||
* 10, а лучше 100 раз переспросите с разных сторон(задавайте вопросы в разных вариациях до тех пор пока ответ не будет однозначным).
|
||||
* Даже если Вам кажется что ИИ дал ±точный ответ — переспросите ещё раз.
|
||||
* Не пытайтесь доказать ИИ что Вы — "не олень", он этого не оценит.
|
||||
* Предлагая ИИ оценить написанный код будьте готовы к тому что Вас разнесут в пух и прах по тем аспектам где ответственность кода заканчивается(принцип SRP), у ИИ галочка на расширяемость и проверки(NULL-sfety, неявные проверки они попросту не видят), вернее не "галочка" а "ГАЛИЩЕ", KISS+YAGNI им надо явно объяснять в комментариях, хотя даже после этого они в ответе выкатять здоровенный список "недостатки".
|
||||
* Предлагая ИИ оценить написанный код будьте готовы к тому что Вас разнесут в пух и прах по тем аспектам где ответственность кода заканчивается(принцип SRP), у ИИ галочка на расширяемость и проверки(NULL-sfety, неявные проверки они попросту не видят), вернее не "галочка" а "ГАЛИЩЕ", KISS+YAGNI им надо явно объяснять в комментариях, хотя даже после этого они в ответе выкатят здоровенный список "недостатки".
|
||||
* ИИ - это инструмент технического анализа по "устоявшимся" шаблонам, каждое неординарное решение сразу попадает в "недостатки". ИИ не видит "замысел", только разрозненные шаблоны и маркеры.
|
||||
|
||||
Мне очень поднимают настроение многочасовые баталии с ней, однако, это отвлекает от сути. Каждый раз когда я в итоге довожу YandexGPT 5.1 Pro(АлисаAI) до стадии "Да, Вы правы..." в коде я оставляю коментарии сгенерированные ею для неё же и помечаю их как "коментарии от YandexGPT 5.1 Pro(АлисаAI)". Очень часто в коментариях к коду можно встретить объяснения такого рода "АлисаAI настояла" в тех местах где наши мнения расходились но я пошёл на компромисс.
|
||||
Мне очень поднимают настроение многочасовые баталии с ней, однако, это отвлекает от сути. Каждый раз когда я в итоге довожу YandexGPT 5.1 Pro(АлисаAI) до стадии "Да, Вы правы..." в коде я оставляю комментарии сгенерированные ею для неё же и помечаю их как "комментарии от YandexGPT 5.1 Pro(АлисаAI)". Очень часто в коментариях к коду можно встретить объяснения такого рода "АлисаAI настояла" в тех местах где наши мнения расходились но я пошёл на компромисс.
|
||||
|
||||
### Основной посыл
|
||||
|
||||
Хоть проект изначально и пердполагался как портфолио, в нынешнем своём состоянии он представляет из себя немного больше. Скорее это рассказ о том "как это было". Проект постепенно перерос в своеобразную "историю жизни", это неординарный подход к разработке, но в виду того что я веду проект один и колаборация не предполагается, я продолжу в том-же духе, в первую очередь — для своих детей, им интересно это читать, а мне не то чтобы не сложно, а скорее — приятно писать для них. Таким образом я чувствую себя причастным ко вкладу в искуство и к произведению "История одного байта", которое давным давно глубоко запало мне в душу и многому научило с философской точки зрения.
|
||||
Хоть проект изначально и предполагался как портфолио, в нынешнем своём состоянии он представляет из себя немного больше. Скорее это рассказ о том "как это было". Проект постепенно перерос в своеобразную "историю жизни", это неординарный подход к разработке, но ввиду того что я веду проект один и коллаборация не предполагается, я продолжу в том-же духе, в первую очередь — для своих детей, им интересно это читать, а мне не то чтобы не сложно, а скорее — приятно писать для них. Таким образом я чувствую себя причастным ко вкладу в искусство и к произведению "История одного байта", которое давным давно глубоко запало мне в душу и многому научило с философской точки зрения.
|
||||
|
||||
### Образовательный аспект
|
||||
Проект открыт для изучения, как автор — не претендую на звание "разработчик года", отнюдь, считаю что всегда есть куда идти, даже топовым кодерам, но точно знаю что некоторые техники встречающиеся в коде помогут малоопытным или "смежным" специалистам понять всю красоту низкоуровнего программирования, возможно, перенять некоторые практики и применять их в дальнейшем. Весь код будет снабжён "удобоваримыми" коментариями для специалистов всех уровней и языковых групп(имеется в виду группы языков программирования).
|
||||
@@ -222,15 +233,19 @@ Apache License 2.0 — код открыт для изучения.
|
||||
### Основная стратегия KISS+YAGNI
|
||||
Я не предусматриваю грандиозное расширение, проект должен обеспечить максимальную производительность и отказоустойчивость для классических крестиков-ноликов в многопользовательском режиме с возможностью игры против ИИ(нейросети). Как основатель проекта я не предполагаю увеличивать размер поля до MAX_INT*MAX_INT и заниматься безопасностью ради безопасности. Каждый модуль проекта имеет строго свою область ответственности.
|
||||
|
||||
### Начата разработка общих модулей, конкретно — XOGame.
|
||||
Разработана типичная архитектура со скрытой реализацией и заложенной возможностью изменения поведения модуля через указатели на структуры. Как и обычно(не раз проверено) внешний интерфейс константен, доступ к функциям модуля только через указатели внутри внешних неизменяемых структур. Почему именно так — потому что так проще отловить ошибки, проверяем только внутреннюю реализацию, отлаживаем её и используем. Если в дальнейшем возникают ошибки - это не вина модуля, это вина вызывающего кода. В контексте всего решения это избавляет от рефапкторинга ради рефакторинга и бесконечной скачки от файла к файлу.
|
||||
### Начата разработка общих модулей.
|
||||
#### XOGame
|
||||
Разработана типичная архитектура со скрытой реализацией и заложенной возможностью изменения поведения модуля через указатели на структуры. Как и обычно(не раз проверено) внешний интерфейс константен, доступ к функциям модуля только через указатели внутри внешних неизменяемых структур. Почему именно так — потому что так проще отловить ошибки, проверяем только внутреннюю реализацию, отлаживаем её и используем. Если в дальнейшем возникают ошибки - это не вина модуля, это вина вызывающего кода. В контексте всего решения это избавляет от рефакторинга ради рефакторинга и бесконечной скачки от файла к файлу.
|
||||
|
||||
После предоставления кода **xogame/includes/XOGame.h**, **xogame/headers/_XOGame.h** и **xogame/src/XOGame.c** на ревью YandexGPT 5.1 Pro(АлисаAI) и 4-хчасовой баталии по поводу **void* fxalloc(size_t _NBytes)** решено пока что "забыть" про реализацию XOGame.c и заняться аллокатором **fxalloc.c**, иначе я не выдержу, порой она достаёт "до чёртиков" 😃
|
||||
|
||||
#### FXAlloc
|
||||
Спректирован аллокатор. Модуль аллокатора вынесен в отдельный репозиторий [fxalloc](https://felexdev.ru/git/felex67/fxalloc)
|
||||
|
||||
### 26.04.2026
|
||||
Сломал Алису попросив оценить расчёты:
|
||||
| Параметр | Формула | Лимит guiuser-ов | Описание |
|
||||
|---------:|:------------------------:|:----------------:|:-------------------------------------|
|
||||
|---------:|:--------------------------:|:----------------:|:-------------------------------------|
|
||||
|**Wi-Fi:**| $⌈\frac{85,3×10^6}{25×8}⌉$ | 426 500 | Не то что бы много, но дох-х-ходчиво |
|
||||
|
||||
### 28.04.2026
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
|
||||
## Информация
|
||||
* Файл для отслеживания текущих задач проекта
|
||||
* Последнее обновление: [25.04.2026]
|
||||
* Последнее обновление: [19.05.2026]
|
||||
|
||||
## Условные обозначения
|
||||
* 🔥 - Наивысший приоритет
|
||||
@@ -13,9 +13,7 @@
|
||||
## Задачи в процессе
|
||||
|Срочность|Компонент|Задача|Описание|
|
||||
|:-------:|:-------:|:-----|:-------|
|
||||
|🔥|**Архитектура**|**Работа с документацией**|Стандартизация и реорганизация документации|
|
||||
|🔥|**FXAlloc**|**Проектирование архитектуры**|Интерфейс, внутреннее устройство|
|
||||
|🔥|**FXAlloc**|**Документация**|Описание архитектуры решения, ведение DAIRY.md|
|
||||
|🔥|**FXAlloc**|**Проектирование**|Сбор отзывов по архитектуре|
|
||||
|🔥|**FXAlloc**|**Logic**|Реализации внутренних методов|
|
||||
|🔥|**FXAlloc**|**API**|Реализация внешних методов|
|
||||
|🔥|**FXAlloc**|**Тестирование**|Написание юнит-тестов|
|
||||
@@ -25,7 +23,7 @@
|
||||
|🔴|**XOGame**|**Тестирование**|Написание юнит-тестов|
|
||||
|🔴|**XOGame**|**Оптимизация**|Анализ производительности|
|
||||
|🟡|**AINeurox**|**Проектирование архитектуры**|Интерфейс, внутреннее устройство|
|
||||
|🟡|**AINeurox**|**Документация**|Описание архитектуры решения, ведение DAIRY.md|
|
||||
|🟡|**AINeurox**|**Документация**|Описание архитектуры решения, ведение DIARY.md|
|
||||
|🟡|**AINeurox**|**Logic**|Реализации внутренних методов|
|
||||
|🟡|**AINeurox**|**API**|Реализация внешних методов|
|
||||
|🟡|**AINeurox**|**Тестирование**|Написание юнит-тестов|
|
||||
|
||||
@@ -1,17 +0,0 @@
|
||||
#pragma once
|
||||
|
||||
/**
|
||||
* @author admin@felexdev.ru
|
||||
* @version 1.0.0
|
||||
*
|
||||
* @brief Header template
|
||||
*/
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif //__cplusplus
|
||||
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif //__cplusplus
|
||||
@@ -0,0 +1,4 @@
|
||||
#!/bin/bash
|
||||
rm -rf /var/www/neurox.su/docs
|
||||
|
||||
doxygen Doxylocal
|
||||
@@ -0,0 +1,39 @@
|
||||
body {
|
||||
background-color: #202028;
|
||||
color:#ccd;
|
||||
}
|
||||
h1 {
|
||||
color:#ddc;
|
||||
}
|
||||
h2 {
|
||||
color:#ddc;
|
||||
}
|
||||
h3 {
|
||||
color:#ddc;
|
||||
}
|
||||
h4 {
|
||||
color:#ddc;
|
||||
}
|
||||
h5 {
|
||||
color:#ddc;
|
||||
}
|
||||
h6 {
|
||||
color:#ddc;
|
||||
}
|
||||
#projectname {
|
||||
color: #e7f;
|
||||
font-weight: bolder;
|
||||
}
|
||||
#projectnumber {
|
||||
color: #aad;
|
||||
font-weight: normal;
|
||||
}
|
||||
#projectbrief {
|
||||
color: #dda;
|
||||
font-weight: normal;
|
||||
font-weight: bold;
|
||||
}
|
||||
summary {
|
||||
font-weight: bold;
|
||||
color: #ddc;
|
||||
}
|
||||
@@ -0,0 +1 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="currentColor"><path d="M10.4.5c1.963 0 2.946 0 3.667.442a3 3 0 0 1 .99.99c.443.722.443 1.704.443 3.668v.8l-.007 1.301c-.02 1.139-.104 1.826-.435 2.367l-.097.149c-.236.338-.54.625-.894.842l-.138.078c-.52.267-1.186.338-2.229.357l-.206.001v.205c-.022 1.139-.105 1.826-.436 2.367a2.999 2.999 0 0 1-.99.99c-.542.332-1.23.415-2.368.436l-1.3.007h-.8c-1.841 0-2.82 0-3.529-.364l-.138-.078a2.999 2.999 0 0 1-.894-.842l-.097-.149C.611 13.527.528 12.84.507 11.7L.5 10.4v-.8c0-1.841 0-2.82.364-3.529l.078-.138a3 3 0 0 1 .842-.894l.149-.097c.572-.35 1.31-.422 2.572-.437.014-1.163.075-1.88.36-2.434l.077-.138a3 3 0 0 1 .842-.894l.149-.097C6.654.5 7.636.5 9.6.5h.8zM5.6 5.8c-1.007 0-1.672.002-2.177.05-.486.046-.69.126-.812.2a1.7 1.7 0 0 0-.56.561c-.075.122-.155.326-.201.812-.048.505-.05 1.17-.05 2.177v.8c0 1.007.002 1.672.05 2.177.046.486.126.69.2.812.14.228.333.42.561.56.122.075.326.155.812.201.505.048 1.17.05 2.177.05h.8c1.007 0 1.672-.002 2.177-.05.486-.046.69-.126.812-.2a1.7 1.7 0 0 0 .56-.561c.075-.122.155-.326.201-.812.048-.505.05-1.17.05-2.177v-.8c0-1.007-.002-1.672-.05-2.177-.046-.486-.126-.69-.2-.812a1.7 1.7 0 0 0-.561-.56c-.122-.075-.326-.155-.812-.201-.505-.048-1.17-.05-2.177-.05h-.8zm4-4c-1.007 0-1.672.002-2.177.05-.486.046-.69.126-.812.2a1.7 1.7 0 0 0-.56.561c-.075.122-.155.326-.201.812-.028.293-.039.64-.044 1.077H6.4l1.3.007c1.139.02 1.826.104 2.367.435.404.248.743.587.99.99.443.722.443 1.704.443 3.668v.592a13.38 13.38 0 0 0 1.076-.04c.486-.047.69-.127.812-.202a1.71 1.71 0 0 0 .561-.561c.075-.122.155-.326.201-.812.048-.505.05-1.17.05-2.177v-.8c0-1.007-.002-1.672-.05-2.177-.046-.486-.126-.69-.2-.812a1.7 1.7 0 0 0-.562-.56c-.122-.075-.326-.155-.812-.201-.505-.048-1.17-.05-2.177-.05h-.8z"></path></svg>
|
||||
|
After Width: | Height: | Size: 1.7 KiB |
@@ -0,0 +1,155 @@
|
||||
/*
|
||||
@licstart The following is the entire license notice for the JavaScript code in this file.
|
||||
|
||||
The MIT License (MIT)
|
||||
|
||||
Copyright (C) 1997-2020 by Dimitri van Heesch
|
||||
|
||||
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.
|
||||
|
||||
@licend The above is the entire license notice for the JavaScript code in this file
|
||||
*/
|
||||
var once=1;
|
||||
function initResizable()
|
||||
{
|
||||
var cookie_namespace = 'doxygen';
|
||||
var sidenav,navtree,content,header,barWidth=6,desktop_vp=768,titleHeight;
|
||||
|
||||
function readSetting(cookie)
|
||||
{
|
||||
if (window.chrome) {
|
||||
var val = localStorage.getItem(cookie_namespace+'_width');
|
||||
if (val) return val;
|
||||
} else {
|
||||
var myCookie = cookie_namespace+"_"+cookie+"=";
|
||||
if (document.cookie) {
|
||||
var index = document.cookie.indexOf(myCookie);
|
||||
if (index != -1) {
|
||||
var valStart = index + myCookie.length;
|
||||
var valEnd = document.cookie.indexOf(";", valStart);
|
||||
if (valEnd == -1) {
|
||||
valEnd = document.cookie.length;
|
||||
}
|
||||
var val = document.cookie.substring(valStart, valEnd);
|
||||
return val;
|
||||
}
|
||||
}
|
||||
}
|
||||
return 250;
|
||||
}
|
||||
|
||||
function writeSetting(cookie, val)
|
||||
{
|
||||
if (window.chrome) {
|
||||
localStorage.setItem(cookie_namespace+"_width",val);
|
||||
} else {
|
||||
var date = new Date();
|
||||
date.setTime(date.getTime()+(10*365*24*60*60*1000)); // default expiration is one week
|
||||
expiration = date.toGMTString();
|
||||
document.cookie = cookie_namespace + "_" + cookie + "=" + val + "; SameSite=Lax; expires=" + expiration+"; path=/";
|
||||
}
|
||||
}
|
||||
|
||||
function resizeWidth()
|
||||
{
|
||||
var windowWidth = $(window).width() + "px";
|
||||
var sidenavWidth = $(sidenav).outerWidth();
|
||||
content.css({marginLeft:parseInt(sidenavWidth)+"px"});
|
||||
if (typeof page_layout!=='undefined' && page_layout==1) {
|
||||
footer.css({marginLeft:parseInt(sidenavWidth)+"px"});
|
||||
}
|
||||
writeSetting('width',sidenavWidth-barWidth);
|
||||
}
|
||||
|
||||
function restoreWidth(navWidth)
|
||||
{
|
||||
var windowWidth = $(window).width() + "px";
|
||||
content.css({marginLeft:parseInt(navWidth)+barWidth+"px"});
|
||||
if (typeof page_layout!=='undefined' && page_layout==1) {
|
||||
footer.css({marginLeft:parseInt(navWidth)+barWidth+"px"});
|
||||
}
|
||||
sidenav.css({width:navWidth + "px"});
|
||||
}
|
||||
|
||||
function resizeHeight()
|
||||
{
|
||||
var headerHeight = header.outerHeight();
|
||||
var footerHeight = footer.outerHeight();
|
||||
var windowHeight = $(window).height();
|
||||
var contentHeight,navtreeHeight,sideNavHeight;
|
||||
if (typeof page_layout==='undefined' || page_layout==0) { /* DISABLE_INDEX=NO */
|
||||
contentHeight = windowHeight - headerHeight - footerHeight;
|
||||
navtreeHeight = contentHeight;
|
||||
sideNavHeight = contentHeight;
|
||||
} else if (page_layout==1) { /* DISABLE_INDEX=YES */
|
||||
contentHeight = windowHeight - footerHeight;
|
||||
navtreeHeight = windowHeight - headerHeight;
|
||||
sideNavHeight = windowHeight;
|
||||
}
|
||||
content.css({height:contentHeight + "px"});
|
||||
navtree.css({height:navtreeHeight + "px"});
|
||||
sidenav.css({height:sideNavHeight + "px"});
|
||||
if (location.hash.slice(1)) {
|
||||
(document.getElementById(location.hash.slice(1))||document.body).scrollIntoView();
|
||||
}
|
||||
}
|
||||
|
||||
function collapseExpand()
|
||||
{
|
||||
var newWidth;
|
||||
if (sidenav.width()>0) {
|
||||
newWidth=0;
|
||||
}
|
||||
else {
|
||||
var width = readSetting('width');
|
||||
newWidth = (width>250 && width<$(window).width()) ? width : 250;
|
||||
}
|
||||
restoreWidth(newWidth);
|
||||
var sidenavWidth = $(sidenav).outerWidth();
|
||||
writeSetting('width',sidenavWidth-barWidth);
|
||||
}
|
||||
|
||||
header = $("#top");
|
||||
sidenav = $("#side-nav");
|
||||
content = $("#doc-content");
|
||||
navtree = $("#nav-tree");
|
||||
footer = $("#nav-path");
|
||||
$(".side-nav-resizable").resizable({resize: function(e, ui) { resizeWidth(); } });
|
||||
$(sidenav).resizable({ minWidth: 0 });
|
||||
$(window).resize(function() { resizeHeight(); });
|
||||
var device = navigator.userAgent.toLowerCase();
|
||||
var touch_device = device.match(/(iphone|ipod|ipad|android)/);
|
||||
if (touch_device) { /* wider split bar for touch only devices */
|
||||
$(sidenav).css({ paddingRight:'20px' });
|
||||
$('.ui-resizable-e').css({ width:'20px' });
|
||||
$('#nav-sync').css({ right:'34px' });
|
||||
barWidth=20;
|
||||
}
|
||||
var width = readSetting('width');
|
||||
if (width) { restoreWidth(width); } else { resizeWidth(); }
|
||||
resizeHeight();
|
||||
var url = location.href;
|
||||
var i=url.indexOf("#");
|
||||
if (i>=0) window.location.hash=url.substr(i);
|
||||
var _preventDefault = function(evt) { evt.preventDefault(); };
|
||||
$("#splitbar").bind("dragstart", _preventDefault).bind("selectstart", _preventDefault);
|
||||
if (once) {
|
||||
$(".ui-resizable-handle").dblclick(collapseExpand);
|
||||
once=0
|
||||
}
|
||||
$(window).on('load',resizeHeight);
|
||||
}
|
||||
/* @license-end */
|
||||
@@ -0,0 +1,5 @@
|
||||
var isInMobile = false;
|
||||
|
||||
function jsinject_init() {
|
||||
// Скоро зде что-нибудь появится =)
|
||||
}
|
||||
@@ -0,0 +1,25 @@
|
||||
#!/bin/bash
|
||||
|
||||
TARGET_FILE=index.html
|
||||
TARGET_DIR=docs/html
|
||||
|
||||
if ! cd $TARGET_DIR; then
|
||||
echo "Папки $TARGET_DIR не сущестует"
|
||||
exit 1;
|
||||
fi
|
||||
|
||||
if ! cp $TARGET_FILE "$TARGET_FILE.back"; then
|
||||
echo "Не могу скопировать файл $TARGET_FILE"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if ! sed '/<\/head>/i\\t\t<script type="text/JavaScript" src="jsinject.js"></script>' index.html > "_$TARGET_FILE"\
|
||||
|| ! sed 's/<body>/<body onLoad="jsinject_init();">/g' "_$TARGET_FILE" > $TARGET_FILE; then
|
||||
echo "Ошибка инъекции"
|
||||
fi
|
||||
|
||||
rm -f "_$TARGET_FILE"
|
||||
|
||||
rm -f resize.js
|
||||
|
||||
cp injectresize.js resize.js
|
||||
+253
@@ -0,0 +1,253 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
||||
|
||||
<svg
|
||||
width="512"
|
||||
height="512"
|
||||
viewBox="0 0 135.46667 135.46667"
|
||||
version="1.1"
|
||||
id="svg1"
|
||||
inkscape:version="1.4.3 (fcd0343856, 2026-01-01)"
|
||||
sodipodi:docname="NeurOX.svg"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:cc="http://creativecommons.org/ns#"
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/">
|
||||
<title
|
||||
id="title1">NeurOX</title>
|
||||
<sodipodi:namedview
|
||||
id="namedview1"
|
||||
pagecolor="#505050"
|
||||
bordercolor="#ffffff"
|
||||
borderopacity="1"
|
||||
inkscape:showpageshadow="0"
|
||||
inkscape:pageopacity="0"
|
||||
inkscape:pagecheckerboard="1"
|
||||
inkscape:deskcolor="#505050"
|
||||
inkscape:document-units="px"
|
||||
inkscape:zoom="1.0116647"
|
||||
inkscape:cx="218.45183"
|
||||
inkscape:cy="338.55092"
|
||||
inkscape:window-width="1920"
|
||||
inkscape:window-height="1011"
|
||||
inkscape:window-x="0"
|
||||
inkscape:window-y="0"
|
||||
inkscape:window-maximized="1"
|
||||
inkscape:current-layer="svg1" />
|
||||
<defs
|
||||
id="defs1">
|
||||
<filter
|
||||
inkscape:label="Chalk and Sponge"
|
||||
inkscape:menu="Distort"
|
||||
inkscape:menu-tooltip="Low turbulence gives sponge look and high turbulence chalk"
|
||||
width="1"
|
||||
height="1"
|
||||
y="0"
|
||||
x="0"
|
||||
style="color-interpolation-filters:sRGB;"
|
||||
id="filter376">
|
||||
<feTurbulence
|
||||
baseFrequency="0.4"
|
||||
type="fractalNoise"
|
||||
seed="0"
|
||||
numOctaves="5"
|
||||
result="result1"
|
||||
id="feTurbulence376" />
|
||||
<feDisplacementMap
|
||||
xChannelSelector="R"
|
||||
yChannelSelector="G"
|
||||
scale="30"
|
||||
in="SourceGraphic"
|
||||
in2="result1"
|
||||
id="feDisplacementMap376" />
|
||||
</filter>
|
||||
<filter
|
||||
inkscape:label="Lizard Skin"
|
||||
inkscape:menu="Materials"
|
||||
inkscape:menu-tooltip="Stylized reptile skin texture"
|
||||
style="color-interpolation-filters:sRGB;"
|
||||
id="filter387"
|
||||
x="-0.066606786"
|
||||
y="-0.311835"
|
||||
width="1.1490723"
|
||||
height="1.6979164">
|
||||
<feGaussianBlur
|
||||
stdDeviation="0.5"
|
||||
in="SourceGraphic"
|
||||
result="result0"
|
||||
id="feGaussianBlur384" />
|
||||
<feTurbulence
|
||||
result="result1"
|
||||
numOctaves="1"
|
||||
seed="488"
|
||||
baseFrequency="0.095"
|
||||
type="turbulence"
|
||||
id="feTurbulence384" />
|
||||
<feComposite
|
||||
in="result0"
|
||||
in2="result1"
|
||||
operator="in"
|
||||
result="result2"
|
||||
id="feComposite384" />
|
||||
<feComposite
|
||||
operator="arithmetic"
|
||||
in="result4"
|
||||
in2="result2"
|
||||
k3="1"
|
||||
k1="3"
|
||||
result="result91"
|
||||
id="feComposite385" />
|
||||
<feBlend
|
||||
mode="multiply"
|
||||
result="fbSourceGraphic"
|
||||
in2="result91"
|
||||
id="feBlend385" />
|
||||
<feColorMatrix
|
||||
result="fbSourceGraphicAlpha"
|
||||
in="fbSourceGraphic"
|
||||
values="0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 5 0"
|
||||
id="feColorMatrix385" />
|
||||
<feGaussianBlur
|
||||
result="result0"
|
||||
in="fbSourceGraphicAlpha"
|
||||
stdDeviation="3"
|
||||
id="feGaussianBlur385" />
|
||||
<feOffset
|
||||
result="result3"
|
||||
in="result0"
|
||||
dy="2"
|
||||
dx="2"
|
||||
id="feOffset385" />
|
||||
<feSpecularLighting
|
||||
specularExponent="30"
|
||||
specularConstant="1.1"
|
||||
surfaceScale="2"
|
||||
lighting-color="rgb(111,236,253)"
|
||||
result="result1"
|
||||
in="result0"
|
||||
id="feSpecularLighting385">
|
||||
<fePointLight
|
||||
z="20000"
|
||||
y="-10000"
|
||||
x="-5000"
|
||||
id="fePointLight385" />
|
||||
</feSpecularLighting>
|
||||
<feComposite
|
||||
k2="-1"
|
||||
operator="in"
|
||||
result="result2"
|
||||
in="result1"
|
||||
in2="fbSourceGraphicAlpha"
|
||||
id="feComposite386" />
|
||||
<feComposite
|
||||
k3="1"
|
||||
k2="3"
|
||||
operator="arithmetic"
|
||||
result="result4"
|
||||
in="fbSourceGraphic"
|
||||
in2="result2"
|
||||
id="feComposite387" />
|
||||
<feBlend
|
||||
mode="multiply"
|
||||
in2="result4"
|
||||
id="feBlend387" />
|
||||
</filter>
|
||||
</defs>
|
||||
<g
|
||||
inkscape:label="Layer 1"
|
||||
inkscape:groupmode="layer"
|
||||
id="layer1">
|
||||
<text
|
||||
xml:space="preserve"
|
||||
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:22.5737px;font-family:Monospace;-inkscape-font-specification:'Monospace Bold';text-align:start;writing-mode:lr-tb;direction:ltr;text-anchor:start;white-space:pre;inline-size:170.929;fill:#000419;stroke-width:0.264583;fill-opacity:0.4818868"
|
||||
x="20.661079"
|
||||
y="24.061005"
|
||||
id="text1"
|
||||
transform="matrix(1,0,0,1.4973347,-15.691959,-0.5002043)"><tspan
|
||||
x="20.661079"
|
||||
y="24.061005"
|
||||
id="tspan3">[O][ ][ ]
|
||||
</tspan><tspan
|
||||
x="20.661079"
|
||||
y="52.278128"
|
||||
id="tspan4">[X][X][O]
|
||||
</tspan><tspan
|
||||
x="20.661079"
|
||||
y="80.495253"
|
||||
id="tspan5">[O][ ][X]</tspan></text>
|
||||
<text
|
||||
xml:space="preserve"
|
||||
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:35.615px;font-family:Monospace;-inkscape-font-specification:'Monospace Bold';writing-mode:lr-tb;direction:ltr;fill:#000d0d;fill-opacity:1;stroke-width:0.38159;filter:url(#filter376)"
|
||||
x="-61.488533"
|
||||
y="109.49948"
|
||||
id="text2"
|
||||
transform="matrix(0.89072395,-0.87122375,0.84471128,0.9186806,-17.13243,-18.133491)"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan2"
|
||||
style="fill:#000d0d;fill-opacity:1;stroke-width:0.38159"
|
||||
x="-61.488533"
|
||||
y="109.49948">NeurOX</tspan></text>
|
||||
</g>
|
||||
<g
|
||||
inkscape:groupmode="layer"
|
||||
id="layer2"
|
||||
inkscape:label="Layer 2">
|
||||
<text
|
||||
xml:space="preserve"
|
||||
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:35.615px;font-family:Monospace;-inkscape-font-specification:'Monospace Bold';writing-mode:lr-tb;direction:ltr;display:inline;fill:#006de8;fill-opacity:1;stroke-width:0.38159;filter:url(#filter387)"
|
||||
x="-61.778652"
|
||||
y="109.51575"
|
||||
id="text2-3"
|
||||
transform="matrix(0.72172517,-0.69181115,0.68444257,0.72949513,0,0)"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan2-7"
|
||||
style="fill:#006de8;fill-opacity:1;stroke-width:0.38159"
|
||||
x="0"
|
||||
y="0">NeurOX</tspan></text>
|
||||
</g>
|
||||
<metadata
|
||||
id="metadata1">
|
||||
<rdf:RDF>
|
||||
<cc:Work
|
||||
rdf:about="">
|
||||
<dc:title>NeurOX</dc:title>
|
||||
<dc:creator>
|
||||
<cc:Agent>
|
||||
<dc:title>neurox.su</dc:title>
|
||||
</cc:Agent>
|
||||
</dc:creator>
|
||||
<dc:publisher>
|
||||
<cc:Agent>
|
||||
<dc:title>neurox.su</dc:title>
|
||||
</cc:Agent>
|
||||
</dc:publisher>
|
||||
<dc:subject>
|
||||
<rdf:Bag>
|
||||
<rdf:li>NeurOX_logo</rdf:li>
|
||||
</rdf:Bag>
|
||||
</dc:subject>
|
||||
<dc:description>NeorOX project logo</dc:description>
|
||||
<cc:license
|
||||
rdf:resource="http://creativecommons.org/licenses/by-nc/4.0/" />
|
||||
</cc:Work>
|
||||
<cc:License
|
||||
rdf:about="http://creativecommons.org/licenses/by-nc/4.0/">
|
||||
<cc:permits
|
||||
rdf:resource="http://creativecommons.org/ns#Reproduction" />
|
||||
<cc:permits
|
||||
rdf:resource="http://creativecommons.org/ns#Distribution" />
|
||||
<cc:requires
|
||||
rdf:resource="http://creativecommons.org/ns#Notice" />
|
||||
<cc:requires
|
||||
rdf:resource="http://creativecommons.org/ns#Attribution" />
|
||||
<cc:prohibits
|
||||
rdf:resource="http://creativecommons.org/ns#CommercialUse" />
|
||||
<cc:permits
|
||||
rdf:resource="http://creativecommons.org/ns#DerivativeWorks" />
|
||||
</cc:License>
|
||||
</rdf:RDF>
|
||||
</metadata>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 7.9 KiB |
@@ -0,0 +1,253 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
||||
|
||||
<svg
|
||||
width="960"
|
||||
height="384"
|
||||
viewBox="0 0 254 101.6"
|
||||
version="1.1"
|
||||
id="svg1"
|
||||
inkscape:version="1.4.3 (fcd0343856, 2026-01-01)"
|
||||
sodipodi:docname="NeurOX_vk_bg.svg"
|
||||
inkscape:export-filename="NeurOX_vk_bg.png"
|
||||
inkscape:export-xdpi="96"
|
||||
inkscape:export-ydpi="96"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:cc="http://creativecommons.org/ns#"
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/">
|
||||
<title
|
||||
id="title1">NeurOX</title>
|
||||
<sodipodi:namedview
|
||||
id="namedview1"
|
||||
pagecolor="#505050"
|
||||
bordercolor="#ffffff"
|
||||
borderopacity="1"
|
||||
inkscape:showpageshadow="0"
|
||||
inkscape:pageopacity="0"
|
||||
inkscape:pagecheckerboard="1"
|
||||
inkscape:deskcolor="#505050"
|
||||
inkscape:document-units="px"
|
||||
inkscape:zoom="1.0116647"
|
||||
inkscape:cx="456.17881"
|
||||
inkscape:cy="338.55091"
|
||||
inkscape:window-width="1920"
|
||||
inkscape:window-height="1011"
|
||||
inkscape:window-x="0"
|
||||
inkscape:window-y="0"
|
||||
inkscape:window-maximized="1"
|
||||
inkscape:current-layer="layer2" />
|
||||
<defs
|
||||
id="defs1">
|
||||
<filter
|
||||
inkscape:label="Chalk and Sponge"
|
||||
inkscape:menu="Distort"
|
||||
inkscape:menu-tooltip="Low turbulence gives sponge look and high turbulence chalk"
|
||||
width="1"
|
||||
height="1"
|
||||
y="0"
|
||||
x="0"
|
||||
style="color-interpolation-filters:sRGB"
|
||||
id="filter376">
|
||||
<feTurbulence
|
||||
baseFrequency="0.4"
|
||||
type="fractalNoise"
|
||||
seed="0"
|
||||
numOctaves="5"
|
||||
result="result1"
|
||||
id="feTurbulence376" />
|
||||
<feDisplacementMap
|
||||
xChannelSelector="R"
|
||||
yChannelSelector="G"
|
||||
scale="30"
|
||||
in="SourceGraphic"
|
||||
in2="result1"
|
||||
id="feDisplacementMap376" />
|
||||
</filter>
|
||||
<filter
|
||||
inkscape:label="Lizard Skin"
|
||||
inkscape:menu="Materials"
|
||||
inkscape:menu-tooltip="Stylized reptile skin texture"
|
||||
style="color-interpolation-filters:sRGB"
|
||||
id="filter387"
|
||||
x="-0.066606786"
|
||||
y="-0.311835"
|
||||
width="1.1490723"
|
||||
height="1.6979164">
|
||||
<feGaussianBlur
|
||||
stdDeviation="0.5"
|
||||
in="SourceGraphic"
|
||||
result="result0"
|
||||
id="feGaussianBlur384" />
|
||||
<feTurbulence
|
||||
result="result1"
|
||||
numOctaves="1"
|
||||
seed="488"
|
||||
baseFrequency="0.095"
|
||||
type="turbulence"
|
||||
id="feTurbulence384" />
|
||||
<feComposite
|
||||
in="result0"
|
||||
in2="result1"
|
||||
operator="in"
|
||||
result="result2"
|
||||
id="feComposite384" />
|
||||
<feComposite
|
||||
operator="arithmetic"
|
||||
in="result4"
|
||||
in2="result2"
|
||||
k3="1"
|
||||
k1="3"
|
||||
result="result91"
|
||||
id="feComposite385"
|
||||
k2="0"
|
||||
k4="0" />
|
||||
<feBlend
|
||||
mode="multiply"
|
||||
result="fbSourceGraphic"
|
||||
in2="result91"
|
||||
id="feBlend385" />
|
||||
<feColorMatrix
|
||||
result="fbSourceGraphicAlpha"
|
||||
in="fbSourceGraphic"
|
||||
values="0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 5 0"
|
||||
id="feColorMatrix385" />
|
||||
<feGaussianBlur
|
||||
result="result0"
|
||||
in="fbSourceGraphicAlpha"
|
||||
stdDeviation="3"
|
||||
id="feGaussianBlur385" />
|
||||
<feOffset
|
||||
result="result3"
|
||||
in="result0"
|
||||
dy="2"
|
||||
dx="2"
|
||||
id="feOffset385" />
|
||||
<feSpecularLighting
|
||||
specularExponent="30"
|
||||
specularConstant="1.10000002"
|
||||
surfaceScale="2"
|
||||
lighting-color="#6fecfd"
|
||||
result="result1"
|
||||
in="result0"
|
||||
id="feSpecularLighting385">
|
||||
<fePointLight
|
||||
z="20000"
|
||||
y="-10000"
|
||||
x="-5000"
|
||||
id="fePointLight385" />
|
||||
</feSpecularLighting>
|
||||
<feComposite
|
||||
operator="in"
|
||||
result="result2"
|
||||
in="result1"
|
||||
in2="fbSourceGraphicAlpha"
|
||||
id="feComposite386" />
|
||||
<feComposite
|
||||
k3="1"
|
||||
k2="3"
|
||||
operator="arithmetic"
|
||||
result="result4"
|
||||
in="fbSourceGraphic"
|
||||
in2="result2"
|
||||
id="feComposite387"
|
||||
k1="0"
|
||||
k4="0" />
|
||||
<feBlend
|
||||
mode="multiply"
|
||||
in2="result4"
|
||||
id="feBlend387" />
|
||||
</filter>
|
||||
</defs>
|
||||
<g
|
||||
inkscape:groupmode="layer"
|
||||
id="layer3"
|
||||
inkscape:label="Layer 3">
|
||||
<rect
|
||||
style="fill:#000000;fill-opacity:1;stroke-width:0.264583"
|
||||
id="rect1"
|
||||
width="254.73279"
|
||||
height="102.52079"
|
||||
x="0"
|
||||
y="-0.78459787" />
|
||||
</g>
|
||||
<g
|
||||
inkscape:label="Layer 1"
|
||||
inkscape:groupmode="layer"
|
||||
id="layer1">
|
||||
<text
|
||||
xml:space="preserve"
|
||||
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:35.615px;font-family:Monospace;-inkscape-font-specification:'Monospace Bold';writing-mode:lr-tb;direction:ltr;fill:#009595;fill-opacity:1;stroke-width:0.38159;filter:url(#filter376)"
|
||||
x="-61.488533"
|
||||
y="109.49948"
|
||||
id="text2"
|
||||
transform="matrix(2.0123577,-0.10555006,0.00310487,3.2641041,119.57974,-264.24702)"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan2"
|
||||
style="fill:#009595;fill-opacity:1;stroke-width:0.38159"
|
||||
x="-61.488533"
|
||||
y="109.49948">NeurOX</tspan></text>
|
||||
</g>
|
||||
<g
|
||||
inkscape:groupmode="layer"
|
||||
id="layer2"
|
||||
inkscape:label="Layer 2">
|
||||
<text
|
||||
xml:space="preserve"
|
||||
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:35.615px;font-family:Monospace;-inkscape-font-specification:'Monospace Bold';writing-mode:lr-tb;direction:ltr;display:inline;fill:#922eff;fill-opacity:1;stroke-width:0.38159;filter:url(#filter387)"
|
||||
x="-61.778652"
|
||||
y="109.51575"
|
||||
id="text2-3"
|
||||
transform="matrix(1.6151383,-0.03586683,0.01876627,1.6091136,120.18778,-103.89366)"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan2-7"
|
||||
style="fill:#922eff;fill-opacity:1;stroke-width:0.38159"
|
||||
x="-61.778652"
|
||||
y="109.51575">NeurOX</tspan></text>
|
||||
</g>
|
||||
<metadata
|
||||
id="metadata1">
|
||||
<rdf:RDF>
|
||||
<cc:Work
|
||||
rdf:about="">
|
||||
<dc:title>NeurOX</dc:title>
|
||||
<dc:creator>
|
||||
<cc:Agent>
|
||||
<dc:title>neurox.su</dc:title>
|
||||
</cc:Agent>
|
||||
</dc:creator>
|
||||
<dc:publisher>
|
||||
<cc:Agent>
|
||||
<dc:title>neurox.su</dc:title>
|
||||
</cc:Agent>
|
||||
</dc:publisher>
|
||||
<dc:subject>
|
||||
<rdf:Bag>
|
||||
<rdf:li>NeurOX_logo</rdf:li>
|
||||
</rdf:Bag>
|
||||
</dc:subject>
|
||||
<dc:description>NeorOX project logo</dc:description>
|
||||
<cc:license
|
||||
rdf:resource="http://creativecommons.org/licenses/by-nc/4.0/" />
|
||||
</cc:Work>
|
||||
<cc:License
|
||||
rdf:about="http://creativecommons.org/licenses/by-nc/4.0/">
|
||||
<cc:permits
|
||||
rdf:resource="http://creativecommons.org/ns#Reproduction" />
|
||||
<cc:permits
|
||||
rdf:resource="http://creativecommons.org/ns#Distribution" />
|
||||
<cc:requires
|
||||
rdf:resource="http://creativecommons.org/ns#Notice" />
|
||||
<cc:requires
|
||||
rdf:resource="http://creativecommons.org/ns#Attribution" />
|
||||
<cc:prohibits
|
||||
rdf:resource="http://creativecommons.org/ns#CommercialUse" />
|
||||
<cc:permits
|
||||
rdf:resource="http://creativecommons.org/ns#DerivativeWorks" />
|
||||
</cc:License>
|
||||
</rdf:RDF>
|
||||
</metadata>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 7.6 KiB |
+1
-1
Submodule server/fxalloc updated: f6375cd4b7...9ceaff3c6a
Reference in New Issue
Block a user