示例#1
0
文件: Scheme.cpp 项目: laduga/pradis
int Scheme::FindDOF(QString name, bool& isBase, bool &isExt)
{
	if(Root.IsNull())
	{
		throw NoLabelInicialisationException("Scheme: label do not inicialised.");
	}

//	printf ("Scheme:10\n");

	GetEqvList();
	TIterator eqv = EqvList.GetIterator();
//	printf ("Scheme:11\n");

	int num = 1;
	while (eqv.More())
	{
		bool isOK;
//			printf ("Scheme:------12\n");

		TElement el (eqv.Value());
		TList B (el.GetField ("doflist", isOK));
		TInteger isb (el.GetField ("isBase", isOK));
		TInteger ise (el.GetField ("isExt", isOK));
		
//		if (isOK)		printf ("Scheme:13 OK OK OK\n");


		TIterator dofit = B.GetIterator();

//			printf ("Scheme:14\n");

		while (dofit.More())
		{
			TString dof (dofit.Value());
			if (name == dof.GetValue())
			{
				isBase = (isb.GetValue()!=0);
				isExt = (ise.GetValue()!=0);
				
				return num;
			}
			dofit.Next();
		}
		
		eqv.Next();
		num++;
	}
	
	return -1;	
}
示例#2
0
af::Model OutValue::GetModelOfValue()
{
	if(Root.IsNull())
	{
		throw NoLabelInicialisationException("OutValue: label do not inicialised.");
	}

	TIterator TITER;

	Model vallr;
	TITER.Init(Root, false);
	while (TITER.More())
	{
		Model val = (Model)TITER.Value();
		QString name = val.GetName();

		if(name == "Model")
		{
			return val;
		}
		TITER.Next();
	}

	TElement e(Root);
	throw NoExistException("OutValue: Model Of Value do not exists.", e);

	return vallr;
}
示例#3
0
文件: Scheme.cpp 项目: laduga/pradis
af::TList Scheme::GetIncludeList()
{
	if(Root.IsNull())
	{
		throw NoLabelInicialisationException("Scheme: label do not inicialised.");
	}
	
	
//	return IncludeList;
	
	
	TIterator TITER;

	TList valls;
	TITER.Init(Root, false);
	while (TITER.More())
	{
		TList val = (TList)TITER.Value();
		QString name = val.GetName();

		if(name == "IncludeList")
		{
			return val;
		}
		TITER.Next();
	}

	TElement e(Root);
	throw NoExistException("Scheme: Include List do not exists.", e);

	return valls;
}
示例#4
0
文件: Include.cpp 项目: laduga/pradis
QString Include::GetFile()
{
	if(Root.IsNull())
	{
		throw NoLabelInicialisationException("Include: label do not inicialised.");
	}

	if(Root.IsNull())
	{
		throw NoLabelInicialisationException("Include: label do not inicialised.");
	}

	TIterator TITER;

	TITER.Init(Root, false);
	while (TITER.More())
	{
		TElement val = TITER.Value();
		QString name = val.GetName();
		if(name == "File name")
		{
			TString valint = (TString)val;
			return valint.GetValue();
		}
		TITER.Next();
	}

	return "";
}
示例#5
0
文件: TData.cpp 项目: laduga/pradis
QString TData::GetDescription()
{
	if(Root.IsNull())
	{
		throw NoLabelInicialisationException("TData: label do not inicialised.");
	}

	TIterator TITER;

	TITER.Init(Root, false);
	while (TITER.More())
	{
		TElement val = TITER.Value();
		QString name = val.GetName();
		if(name == "Description")
		{
			TString valstr = (TString)val;
			return valstr.GetValue();
		}
		TITER.Next();
	}

	return "";
}
示例#6
0
文件: DOF1.cpp 项目: laduga/pradis
double DOF1::GetValue()
{
	if(Root.IsNull())
	{
		throw NoLabelInicialisationException("DOF1: label do not inicialised.");
	}

	TIterator TITER;

	TITER.Init(Root, false);
	while (TITER.More())
	{
		TElement val = TITER.Value();
		QString name = val.GetName();
		if(name == "Value")
		{
			TReal valreal = (TReal)val;
			return valreal.GetValue();
		}
		TITER.Next();
	}

	return 0.;
}
示例#7
0
文件: DOF1.cpp 项目: laduga/pradis
bool DOF1::GetBase()
{
	if(Root.IsNull())
	{
		throw NoLabelInicialisationException("DOF1: label do not inicialised.");
	}

	TIterator TITER;

	TITER.Init(Root, false);
	while (TITER.More())
	{
		TElement val = TITER.Value();
		QString name = val.GetName();
		if(name == "Base")
		{
			TInteger valint = (TInteger)val;
			return valint.GetValue();
		}
		TITER.Next();
	}

	return 0;
}
示例#8
0
文件: Scheme.cpp 项目: laduga/pradis
void Scheme::AddEquivalence (DOF1 nnode1, DOF1 nnode2)
{
	int num1, num2;
	bool isb1, isb2, ise1, ise2;
	QString node1, node2;
	bool isbn1, isbn2, isen1, isen2;
	bool isBase, isExt;
	bool isOK;
	
	GetEqvList();

	node1 = nnode1.GetObjectName();
	node2 = nnode2.GetObjectName();
	
	// printf ("Scheme:1 %s, %s\n", node1.toAscii().data(), node2.toAscii().data());

	isbn1 = nnode1.GetBase();
	isbn2 = nnode2.GetBase();

	isen1 = nnode1.GetExternal();
	isen2 = nnode2.GetExternal();
	
	// printf ("Scheme:1.1 isen1=%d isen2=%d\n", isen1, isen2);

	isb1=ise1=isb2=ise2 = false;

	num1 = FindDOF (node1, isb1, ise1);
	// printf ("Scheme:1.2. num1=%d\n",num1);

	num2 = FindDOF (node2, isb2, ise2);
	// printf ("Scheme:1.3. num2=%d\n",num2);
	
	isBase = isb1 || isb2 || isbn1 || isbn2;
	isExt = ise1 || ise2 || isen1 || isen2;

	// printf ("Scheme:2\n");
	

	if (num1==-1 && num2 == -1)
	{

		TElement var (EqvList.Add());
		
		// printf ("Scheme:3\n");
		
		TList doflist;
		var.AddElement(doflist);
		doflist.SetName ("doflist");

		// printf ("Scheme:4\n");
		
		
		TString n1 (doflist.Add());
		TString n2 (doflist.Add());
		n1.SetValue (node1);
		n2.SetValue (node2);

		// printf ("Scheme:5\n");


		TInteger base;
		var.AddElement(base);
		base.SetName ("isBase");
		base.SetValue (isBase);

		TInteger ext;
		var.AddElement(ext);
		ext.SetName ("isExt");
		ext.SetValue (isExt);


	}else
	if (num1==-1)
	{
		TElement el (EqvList.GetAt(num2));
		TList doflist (el.GetField ("doflist", isOK));
		TInteger isb (el.GetField ("isBase", isOK));
		TInteger ise (el.GetField ("isExt", isOK));

		isb.SetValue (isBase);
		ise.SetValue (isExt);
		
		TString n1 (doflist.Add());
		n1.SetValue (node1);

	}else
	if (num2==-1)
	{
		TElement el (EqvList.GetAt(num1));
		TList doflist (el.GetField ("doflist", isOK));
		TInteger isb (el.GetField ("isBase", isOK));
		TInteger ise (el.GetField ("isExt", isOK));

		isb.SetValue (isBase);
		ise.SetValue (isExt);

		TString n2 (doflist.Add());
		n2.SetValue (node2);
	}else
	if (num1 != num2)
	{
		TElement el (EqvList.GetAt(num1));
		TList doflist1 (el.GetField ("doflist", isOK));
		TInteger isb (el.GetField ("isBase", isOK));
		TInteger ise (el.GetField ("isExt", isOK));

		isb.SetValue (isBase);
		ise.SetValue (isExt);

		el.Init (EqvList.GetAt(num2));
		TList doflist2 (el.GetField ("doflist", isOK));
		
//		TList doflist2 (EqvList.GetAt(num2));
		TIterator it (doflist2.GetIterator());
		
		while (it.More())
		{
			TString n1 (it.Value());
			QString value = n1.GetValue();
			TString n2 (doflist1.Add());
			n2.SetValue (value);
			
			it.Next();
		}
		EqvList.RemoveVar (el);
	}
	
	return;
}