void ccPointPickingGenericInterface::onItemPicked(const PickedItem& pi) { if (m_processing && pi.entity) { processPickedPoint(pi); } }
void ccPointPickingGenericInterface::handlePickedItem(int entityID, unsigned itemIdx, int x, int y) { if (!m_processing) return; ccPointCloud* cloud = 0; ccHObject* obj = MainWindow::TheInstance()->db()->find(entityID); if (!obj) return; if (obj->isKindOf(CC_TYPES::POINT_CLOUD)) { cloud = static_cast<ccPointCloud*>(obj); if (!cloud) { assert(false); ccLog::Warning("[Item picking] Picked point is not in pickable entities DB?!"); return; } const CCVector3* P = cloud->getPoint(itemIdx); if (P) { processPickedPoint(cloud, itemIdx, x, y); } else { ccLog::Warning("[Item picking] Invalid point index!"); } } else if (obj->isKindOf(CC_TYPES::MESH)) { //NOT HANDLED: 'POINT_PICKING' mode only for now assert(false); } else { //unhandled entity assert(false); } }