| Цитата |
|---|
Маргарита Зайцева пишет:
3. Хочу уточнить, в чем различие между mapCleanObject и mapFreeObject.
Как я поняла, разница в следующем. Пусть есть последовательность команд
1) HOBJ hObjToAdd = mapCreateSiteObject(hMap, hSiteArmy, IDFLOAT2, 0);
2) mapRegisterObjectByKey(hObjToAdd, key);
3) mapAppendPointPlane(hObjToAdd, planeXpt, planeYpt, 0);
Применение команды mapCleanObject «отменяет» команды 2 и 3, т.е. возвращает объект в состояние после команды 1 (т.е. имеется пустой объект, привязанный к конкретным картам поверхности и пользователя).
Применение команды mapFreeObject «отменяет» все три команды и делает необходимым повторное создание пустого объекта командой mapCreateSiteObject.
Верны ли эти предположения? |
Да.
mapCreateSiteObject - создание контейнера для размещения объекта в памяти.
mapClearObject - очистка содержимого контейнера (включая описание, метрику и семантику объекта).
mapFreeObject - удаляет контейнер из памяти.
P.S. Есть еще полезная функция:
mapDeleteSubject - удаляет метрику подобъекта (сохраняя описание и семантику объекта).
При вызове с параметрами mapDeleteSubject(info, -1) - удаляет всю метрику объекта, т.е. отмена всех операций mapAppendPointPlane для данного объекта.