/** * @param componentList 带参数构造函数. * * 通过一个组件列表来构造模型. * 此时所有组件都是由外部创建, * 所以置m_SelfOwn为false. */ Model::Model(ComponentList &componentList, ConnectorList &connectorList) { for (UINT32 i = 0; i < componentList.size(); ++i) { IComponent *component = componentList[i]->Clone(); m_ComponentList.push_back(component); } for (UINT32 i = 0; i < connectorList.size(); ++i) { Connector connector = connectorList[i], connectorClone; for (UINT32 i = 0; i < componentList.size(); ++i) { if (connector.Source == componentList[i]) { connectorClone.Source = m_ComponentList[i]; } if (connector.Target == componentList[i]) { connectorClone.Target = m_ComponentList[i]; } } if (connectorClone.Source != NULL && connectorClone.Target != NULL) { m_ConnectorList.push_back(connectorClone); } } }
//----------------------------------------------------------------------------// void RenderedString::cloneComponentList(const ComponentList& list) { clearComponentList(d_components); for (size_t i = 0; i < list.size(); ++i) d_components.push_back(list[i]->clone()); }
//----------------------------------------------------------------------------// void RenderedString::clearComponentList(ComponentList& list) { for (size_t i = 0; i < list.size(); ++i) delete list[i]; list.clear(); }
//----------------------------------------------------------------------------// void RenderedString::clearComponentList(ComponentList& list) { for (size_t i = 0; i < list.size(); ++i) CEGUI_DELETE_AO list[i]; list.clear(); }