Удачного времени суток!
Хочу в порядке бреда задать вопрос.
Имею :
void createpoint::mpoint(const int myX , const int myY , const int myZ)
{
gp_Pnt Point(myX,myY,myZ);
Handle(AIS_Point) myName = new AIS_Point(new Geom_CartesianPoint(Point));
getContext()->SetColor(myName,Quantity_NOC_BLACK,Standard_False);
getContext()->Display(myName,1);
}
QMap<QString, Handle(AIS_Point)> ?
Я не совсем понял. Сейчас аналог открыл Salome-Meca. Так вот они свой класс ввели вместо Handle(AIS_Interactive) используют Handel(SALOME_InteractiveObject)
Но ведь по идее даже если создавать не OpenCascade объекты, ведь возможно задать имя объекта ? Или я чего не так понял.
По ходу задача не выполнима. А все таки, даже если я создаю элементарный QAction:
QAction * <имя акшона> = new QAction(...);
Или в принципе это не возможно. Нужно при написании программы жестко задавать имя ?
2 дня никаких результатов. И вправду это уже даже не смешно ! Может быть хоть какие-то мысли ? Что можно попробовать ?? Как передать имя объекта в функцию ?
Из твоего первого соощения, совершенно ничего не понятно.
Например, что это такое
Для управления объектами Open CASCADE предлагает механизм, известный как handle, наследуемый от MMgt_Tshared-класса. Handle - это дескриптор, который автоматически перераспределяет память.....
Одним словом, Handle здесь совсем не обязательно.
можно просто:
AIS_Point* ss = new AIS_Point(new Geom_CartesianPoint(Point));
Это тоже самое как мы создаем QAction:
QAction* <имя> = new QAction (...)
А ВОТ КАК ЗАДАТЬ ИМЯ?! УМА НЕ ПРИЛОЖУ. ДВА ДНЯ УЖЕ !!!
Вот и я думал так сделать ! Уже написал программу, все интерактивные режимы и операции ! Блин, а теперь выяснил, что не могу графическим объектам задать атрибуты, да черт с ними, хотя бы имя объекта, атрибуты можно и отдельно хранить.
нет там никаких SetObjectName.
есть TDF_Label, TDF_Attributes... но под QT оно не работает. Все время бьет ошибку undefined reference error, хотя под MS Visual собирается нормально.
Блин я в тупике. Я могу обратиться к этим объектам, могу их удалять, складывать , вычитать... Могу вывести их в список, !но имя присваивается им при создании и ВСЕ ТУТ ! хоть тресни !
AIS_Point* Point1 = new AIS_Point(new Geom_CartesianPoint(Point));
значит создасться точка с именем Point1 а при следующем добавлении точки это имя затирается. Хотя точка остается и также можно с ней работать.
ОДНИМ СЛОВОМ, ДУРДОМ !
здаётся мне, что тема не имеет отношения к Qt.
тогда можете снести ее. Но если получится задать атрибуты объектов - ОПИШУ ПОДРОБНО.
А еще такой вопрос: undefined reference to ...
Как с этим бороться ? что я не так делаю ???
Форум Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)