Сообщество программистов Autodesk в СНГ
ADN Club => ObjectARX => Тема начата: DGL от 02-01-2018, 23:33:55
-
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,
Приветствую на форуме!
подскажите пожалуйста, как узнать, что произошло именно "MIRROR"?
А если это вообще какое-то комбинированное преобразование???
Если это простое преобразование и если это MIRROR, то xform.det() == -1.0
-
Огромное спасибо!!! всё работает, я счастлив! :)
-
Здравствуйте!
при описании Custom Entity, для зеркального и незеркального объектов поведение векторов получается разное.
каждый раз проверять зеркальный объект или незеркальный и писать 2 куска кода, отличающегося только знаком минус в одном месте, кажется не оптимальным решением.
подскажите пожалуйста, может быть есть какое-то оптимальное решение, именно для этого случая, выработанное годами практики?
спасибо!
-
Ничего не понял. Это один и тот же примитив (одного и того же класса)? Тогда в чем проблема написать один код и в одном месте поменять знак?