Category: it

Category was added automatically. Read all entries about "it".

eye

SoRayPickAction

#include <Inventor/actions/SoRayPickAction.h> SoRayPickAction - выполняет поиск пересечений луча с граф-сценой. При поиске пересечений с лучом, полученным  из координат мыши, следует обратить внимание на используемые системы координат. В OpenGL начало экраных координат находится в левом нижнем углу и ось Y направлена вверх. Если координаты мыши возвращаются в иной системе координат, то их необходимо скорректировать соответствующим образом. Collapse )
eye

Что случилось с оформлением?

Как вы могли заметить, листинги с кодом перестали выглядеть красиво. Вот что мне ответили в саппорте:

Запрет на использование атрибутов “class” и “id” внутри записей пользователей был введен Живым Журналом как мера по борьбе с фишинговыми атаками.

В дальнейшем, возможность использования данных атрибутов будет возвращена для пользователей платных аккаунтов. Вы можете следить за информацией об обновлениях по адресу http://lj-ru-support.livejournal.com/tag/release.

На данный момент вы можете использовать атрибут style для элементов записи для присвоения им тех или иных свойств стилей.

Примите извинения за неудобства.


Утилиту для подсветки кода я, конечно же, перепишу, но старые листинги обновлять не буду. Так что вот.(
eye

Всегда статические методы

Хочу рассказать о давно известном факте, на который никогда не обращал внимания. Но знать его нужно, поэтому зафиксирую прямо тут и здесь.
Что такое статические методы всем прекрасно известно. Чем статические методы отличаются от методов тоже понятно. Но! От меня долгое время ускользал тот факт, что некоторые методы всегда являются статическими, независимо от использования ключевого слова static. Это операторы new и delete. По своей природе они не могут работать с объектом, т.к. именно они выделяют память для будущего объекта и освобождают её после его удаления. Т.е. в момент их вызова объект ещё либо не создан, либо уже разрушен.
Разработчики приняли очень правильное решение избавить программистов от потенциальных ошибок и сделали эти операторы статическими по умолчанию.
В приведённом ниже коде операторы new и delete являются статическими методами, поэтому внутри них невозможно использовать указатель на объект this.

new & delete.cpp
1 2 3 4 5 6    class Object { public: void * operator new( size_t ); void operator delete( void * ); };
eye

Подсветка синтаксиса (Бета версия)

#UPD 2011-10-22
  • Исправлена загрузка ключевых слов длиннее 31 символа
  • В базовый набор классов добавлены классы библиотеки Coin3D
#UPD 2011-10-05
  • Русский язык базовую поддержку сделал
#UPD 2011-07-09
  • Обработка кода из буфера обмена
  • В заголовке таблицы пишется имя обработанного файла

Скачайте и запустите программу BeCode.
Программа ещё не тестировалась, почти не отлаживалась и функционал пока минимален. Программа осуществляет подсветку синтаксиса и форматирование для С/С++ кода. Подсветка синтаксиса будет работать только в этом блоге, т.к. таблица стилей задана глобально.
Об обнаруженных ошибках и пожеланиях сообщать в комментариях или ЛС.
vc_redist в архиве отсутствует, т.к. наличие MSVC2010SP1 подразумевается по умолчанию.

Окно программы будет всегда находиться поверх других окон.
Перетаскивать окно можно за серое колечко.



Перетащите файл с кодом С++ в окно программы.



Текст, подготовленный для вставки в журнал Coin3D_ru будет помещён в буфер обмена. На время обработки текста кнопка покраснеет.

При нажатии на кнопку, будет обработан код из буфера обмена.

Для закрытия программы нажмите Esc или выберите пункт "Выйти" из контекстного меню.


Перейдите из "Визуального редактора" в "HTML" и вставьте код из буфера обмена. Он будет выглядеть не красиво, но это нормально, стиль будет применён только после добавления в журнал.
eye

Что такое Coin3d?

Вкратце.

Coint3D
- это объектно-ориентированное, кросс-платформенное API, для разработки интерактивных 3D приложений на C++.
Является клоном TGS Open Inventor, но в отличие от него совершенно бесплатен для некоммерческого использования.
Coin3D это интерфейс к API OpenGL. Вместо непосредственных обращений к функциям OpenGL, необходимо создать граф-сцену из высоко-уровневых примитивов, что ускоряет и упрощает разработку.

Граф-сцена - иерархическая структура, упорядочивающая объекты. Задаёт как положение объектов в пространстве, так и зависимости между ними.

При разработке любого 3D приложения приходится строить граф-сцену. Просто невозможно создать сложный трёх-мерный мир, если не упорядочивать объекты. В coin3d иерархия и упорядочивание являются основой, которую невозможно проигнорировать. Это гигантский плюс. Ни чистый OpenGL, ни DirectX не дают вам таких возможностей для удобного и быстрого построения миров.