bool PasteSymbolRandomOP::onMouseLeftDown(int x, int y) { if (ZoomViewOP::onMouseLeftDown(x, y)) return true; ISymbol* symbol = m_randomValue.symbol; if (!symbol) symbol = m_libraryPanel->getSymbol(); if (symbol) { m_pos = m_editPanel->transPosScreenToProject(x, y); ISprite* sprite = SpriteFactory::Instance()->create(symbol); sprite->translate(m_pos); if (m_randomValue.scale != 1.0f) sprite->setScale(m_randomValue.scale); if (m_randomValue.angle != 0.0f) sprite->setTransform(m_pos, m_randomValue.angle); m_panelImpl->insertSprite(sprite); sprite->release(); } changeRandomValue(); return false; }
void CombinationSymbol::loadResources() { CombinationFileAdapter adapter; adapter.load(m_filepath.c_str()); for (size_t i = 0, n = adapter.m_data.size(); i < n; ++i) { ISprite* sprite = NULL; const CombinationFileAdapter::Entry& entry = adapter.m_data[i]; ISymbol* symbol = SymbolMgr::Instance()->getSymbol(entry.filepath); sprite = SpriteFactory::Instance()->create(symbol); sprite->setTransform(entry.pos, entry.angle); sprite->setScale(entry.scale); sprite->setMirror(entry.xMirror, entry.yMirror); m_sprites.push_back(sprite); } // moveToCenter(); initBounding(); }