как отследить "mirror" при вызове "subTransformBy"?

Автор Тема: как отследить "mirror" при вызове "subTransformBy"?  (Прочитано 558 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн DGLАвтор темы

  • ADN OPEN
  • Сообщений: 3
  • Карма: 0
adn-cis.org::adn-cis.org () : forum () {
    здравствуйте люди добрые;
}
adn-cis.org::adn-cis.org (Рыцарь_ObjectARX Александр_Ривилис) {
    здравствуйте, уважаемый Александр Наумович;
}

Visual Studio 2012 + ObjectARX 2016. делаю первый проект в (ну ладно - второй).
делаю dbx, наследуюсь от AcDbEntity.
в "subWorldDraw" рисую полилинию из прямолинейных и дугообразных (bulge) участков с помощью AcDbPolyline.addVertexAt.
в "::subTransformBy(const AcGeMatrix3d& xform)" COPY, MOVE, SCALE и ROTATE работают правильно. чтобы MIRROR работал правильно нужно умножать "bulge" на -1

подскажите пожалуйста, как узнать, что произошло именно "MIRROR"?

Отмечено как Решение DGL 03-01-2018, 00:02:18

Оффлайн Александр Ривилис

  • Administrator
  • *****
  • Сообщений: 8807
  • Карма: 1091
  • Рыцарь ObjectARX
  • Skype: rivilis
DGL,
Приветствую на форуме!
подскажите пожалуйста, как узнать, что произошло именно "MIRROR"?
А если это вообще какое-то комбинированное преобразование???
Если это простое преобразование и если это MIRROR, то xform.det() == -1.0
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Оффлайн DGLАвтор темы

  • ADN OPEN
  • Сообщений: 3
  • Карма: 0
Огромное спасибо!!! всё работает, я счастлив!  :)

Оффлайн DGLАвтор темы

  • ADN OPEN
  • Сообщений: 3
  • Карма: 0
Здравствуйте!
при описании Custom Entity, для зеркального и незеркального объектов поведение векторов получается разное.
каждый раз проверять зеркальный объект или незеркальный и писать 2 куска кода, отличающегося только знаком минус в одном месте, кажется не оптимальным решением.
подскажите пожалуйста, может быть есть какое-то оптимальное решение, именно для этого случая, выработанное годами практики?
спасибо!

Оффлайн Александр Ривилис

  • Administrator
  • *****
  • Сообщений: 8807
  • Карма: 1091
  • Рыцарь ObjectARX
  • Skype: rivilis
Ничего не понял. Это один и тот же примитив (одного и того же класса)? Тогда в чем проблема написать один код и в одном месте поменять знак?
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение