[GME-commit] GMESRC/SDK/BON Builder.cpp, 1.27, 1.28 Builder.h, 1.15, 1.16
Log messages of CVS commits
gme-commit at list.isis.vanderbilt.edu
Thu Mar 27 17:20:27 CDT 2008
- Previous message: [GME-commit] GMESRC/GME/Gme ConnityDlg.cpp, 1.1, 1.2 ConnityDlg.h, 1.1, 1.2 GME.rc, 1.166, 1.167 GMEView.cpp, 1.198, 1.199 GMEView.h, 1.81, 1.82 GUIObject.cpp, 1.59, 1.60 GUIObject.h, 1.26, 1.27 GraphicsUtil.cpp, 1.15, 1.16 GraphicsUtil.h, 1.8, 1.9 resource.h, 1.77, 1.78
- Messages sorted by:
[ date ]
[ thread ]
[ subject ]
[ author ]
Update of /project/gme-repository/GMESRC/SDK/BON
In directory escher:/tmp/cvs-serv17721
Modified Files:
Builder.cpp Builder.h
Log Message:
Cloning method (CloneHere) implemented.
CVS User: Zoltan Molnar, ISIS (zolmol)
Index: Builder.h
===================================================================
RCS file: /project/gme-repository/GMESRC/SDK/BON/Builder.h,v
retrieving revision 1.15
retrieving revision 1.16
diff -C2 -d -r1.15 -r1.16
*** Builder.h 13 Apr 2004 16:34:57 -0000 1.15
--- Builder.h 27 Mar 2008 22:20:25 -0000 1.16
***************
*** 396,399 ****
--- 396,401 ----
void GetAspectNames(CStringList &list);
+ CBuilderObject *CloneHere( CBuilderObject* orig);
+
CBuilderModel *CreateNewModel(CString partName, CBuilderModel* baseType = NULL, bool instance = true);
CBuilderAtom *CreateNewAtom(CString patrName, CBuilderAtom* baseType = NULL, bool instance = true);
Index: Builder.cpp
===================================================================
RCS file: /project/gme-repository/GMESRC/SDK/BON/Builder.cpp,v
retrieving revision 1.27
retrieving revision 1.28
diff -C2 -d -r1.27 -r1.28
*** Builder.cpp 4 Jan 2006 16:42:37 -0000 1.27
--- Builder.cpp 27 Mar 2008 22:20:25 -0000 1.28
***************
*** 1929,1932 ****
--- 1929,2030 ----
}
+ CBuilderObject *CBuilderModel::CloneHere( CBuilderObject* orig)
+ {
+ CComPtr<IMgaFCO> src_obj = orig->GetIObject();
+ CComPtr<IMgaModel> par_obj = GetIModel();
+
+ CComPtr<IMgaFCOs> fco_coll; // ptr to a collection of IMgaFCO objects
+ CComPtr<IMgaMetaRoles> rol_coll; // same
+ fco_coll.CoCreateInstance( L"Mga.MgaFCOs"); // create an empty 'array' of MgaFCO objects
+ rol_coll.CoCreateInstance( L"Mga.MgaMetaRoles"); // same
+
+ // fco collection with 1 element
+ fco_coll->Append( src_obj);
+
+ CComPtr<IMgaMetaRole> role;
+ src_obj->get_MetaRole(&role);
+
+ // role collection with 1 element
+ rol_coll->Append( role); // based on the assumption that the parent of src_obj is of same or similar kind to par_obj
+
+ CComPtr<IMgaFCOs> dst_coll;
+ par_obj->CopyFCOs( fco_coll, rol_coll, &dst_coll);
+
+ // analyze dst_coll
+ long l = 0;
+ if( dst_coll) dst_coll->get_Count( &l);
+
+ CBuilderObject *return_value = 0;
+ for( int i = 1; i <= l; ++i)
+ {
+ CComPtr<IMgaFCO> dst;
+ dst_coll->get_Item( i, &dst);
+
+ objtype_enum ot;
+ if( dst) dst->get_ObjType( &ot);
+ if( ot == OBJTYPE_ATOM)
+ {
+ CBuilderAtom* o = CBuilderFactory::Create(CComQIPtr<IMgaAtom>(dst), this);
+
+ children.AddTail(o);
+
+ CBuilderAtomList *objectlist;
+ VERIFY( atomLists.Lookup( o->GetPartName(), objectlist) );
+ objectlist->AddTail(o);
+
+ return_value = o;
+ }
+ else if( ot == OBJTYPE_MODEL)
+ {
+ CBuilderModel* o = CBuilderFactory::Create( CComQIPtr<IMgaModel>(dst), this);
+ o->Resolve();
+
+ children.AddTail(o);
+ models.AddTail(o);
+
+ CBuilderModelList *objectlist;
+ VERIFY( modelLists.Lookup( o->GetPartName(), objectlist) );
+ objectlist->AddTail(o);
+
+ return_value = o;
+ }
+ else if( ot == OBJTYPE_SET)
+ {
+ CBuilderSet* o = CBuilderFactory::Create( CComQIPtr<IMgaSet>(dst), this);
+
+ FindSets( o->GetPartName())->AddTail( o);
+ sets.AddTail(o);
+ children.AddTail(o);
+
+ return_value = o;
+ }
+ else if( ot == OBJTYPE_REFERENCE)
+ {
+ CBuilderReference* oo = CBuilderFactory::Create(CComQIPtr<IMgaReference>(dst), this);
+
+ CBuilderReferenceList *objectlist;
+ VERIFY( referenceLists.Lookup( oo->GetPartName(), objectlist) );
+ objectlist->AddTail(oo);
+
+ children.AddTail(oo);
+
+ if(oo->IsKindOf(RUNTIME_CLASS(CBuilderModelReference)) ) {
+ CBuilderModelReferenceList *mobjectlist;
+ VERIFY( modelReferenceLists.Lookup(oo->GetPartName(), mobjectlist) );
+ mobjectlist->AddTail((CBuilderModelReference *)oo);
+ }
+ else if(oo->IsKindOf(RUNTIME_CLASS(CBuilderAtomReference)) ) {
+ CBuilderAtomReferenceList *aobjectlist;
+ VERIFY( atomReferenceLists.Lookup(oo->GetPartName(), aobjectlist) );
+ aobjectlist->AddTail((CBuilderAtomReference *)oo);
+ }
+
+ return_value = oo;
+ }
+ }
+
+ return return_value;
+ }
+
CBuilderModel *CBuilderModel::CreateNewModel(CString partName, CBuilderModel *baseType, bool instance)
{
- Previous message: [GME-commit] GMESRC/GME/Gme ConnityDlg.cpp, 1.1, 1.2 ConnityDlg.h, 1.1, 1.2 GME.rc, 1.166, 1.167 GMEView.cpp, 1.198, 1.199 GMEView.h, 1.81, 1.82 GUIObject.cpp, 1.59, 1.60 GUIObject.h, 1.26, 1.27 GraphicsUtil.cpp, 1.15, 1.16 GraphicsUtil.h, 1.8, 1.9 resource.h, 1.77, 1.78
- Messages sorted by:
[ date ]
[ thread ]
[ subject ]
[ author ]
More information about the GME-commit
mailing list