// File: Dynamic_FuzzyClass.cxx // Created: Fri Jan 22 11:45:20 1993 // Author: Gilles DEBARBOUILLE // #include #include #include #include #include #include #include //======================================================================= //function : Dynamic_FuzzyClass //purpose : //======================================================================= Dynamic_FuzzyClass::Dynamic_FuzzyClass() {} //======================================================================= //function : FirstParameter //purpose : //======================================================================= Handle(Dynamic_ParameterNode) Dynamic_FuzzyClass::FirstParameter() const { return thefirstparameternode; } //======================================================================= //function : Parameter //purpose : //======================================================================= Standard_Boolean Dynamic_FuzzyClass::Parameter(const Standard_CString aparameter) const { Handle(Dynamic_Parameter) parameter; Handle(Dynamic_ParameterNode) definition = thefirstparameternode; while(!definition.IsNull()) { parameter = definition->Object(); if(parameter->Name() == aparameter) return Standard_True; definition = definition->Next(); } return Standard_False; } //======================================================================= //function : Parameter //purpose : //======================================================================= void Dynamic_FuzzyClass::Parameter(const Handle(Dynamic_Parameter)& aparameter) { Handle(Dynamic_ParameterNode) parameternode = new Dynamic_ParameterNode(aparameter); parameternode->Next(thefirstparameternode); thefirstparameternode = parameternode; } //======================================================================= //function : Parameter //purpose : //======================================================================= void Dynamic_FuzzyClass::Parameter(const Standard_CString aparameter, const Standard_Boolean avalue) { Handle(Dynamic_ParameterNode) parameternode; Handle(Dynamic_Parameter) parameter; Handle(Dynamic_BooleanParameter) booleanparameter; parameternode = thefirstparameternode; while(!parameternode.IsNull()) { parameter = parameternode->Object(); if(parameter->Name() == aparameter) { Handle(Dynamic_BooleanParameter)::DownCast(parameter)->Value(avalue); return; } parameternode = parameternode->Next(); } booleanparameter = new Dynamic_BooleanParameter(aparameter,avalue); Parameter(booleanparameter); } //======================================================================= //function : Parameter //purpose : //======================================================================= void Dynamic_FuzzyClass::Parameter(const Standard_CString aparameter, const Standard_Integer avalue) { Handle(Dynamic_ParameterNode) parameternode; Handle(Dynamic_Parameter) parameter; Handle(Dynamic_IntegerParameter) integerparameter; parameternode = thefirstparameternode; while(!parameternode.IsNull()) { parameter = parameternode->Object(); if(parameter->Name() == aparameter) { Handle(Dynamic_IntegerParameter)::DownCast(parameter)->Value(avalue); return; } parameternode = parameternode->Next(); } integerparameter = new Dynamic_IntegerParameter(aparameter,avalue); Parameter(integerparameter); } //======================================================================= //function : Parameter //purpose : //======================================================================= void Dynamic_FuzzyClass::Parameter(const Standard_CString aparameter, const Standard_Real avalue) { Handle(Dynamic_ParameterNode) parameternode; Handle(Dynamic_Parameter) parameter; Handle(Dynamic_RealParameter) realparameter; parameternode = thefirstparameternode; while(!parameternode.IsNull()) { parameter = parameternode->Object(); if(parameter->Name() == aparameter) { Handle(Dynamic_RealParameter)::DownCast(parameter)->Value(avalue); return; } parameternode = parameternode->Next(); } realparameter = new Dynamic_RealParameter(aparameter,avalue); Parameter(realparameter); } //======================================================================= //function : Parameter //purpose : //======================================================================= void Dynamic_FuzzyClass::Parameter(const Standard_CString aparameter, const Standard_CString astring) { Handle(Dynamic_ParameterNode) parameternode; Handle(Dynamic_Parameter) parameter; Handle(Dynamic_StringParameter) stringparameter; parameternode = thefirstparameternode; while(!parameternode.IsNull()) { parameter = parameternode->Object(); if(parameter->Name() == aparameter) { Handle(Dynamic_StringParameter)::DownCast(parameter)->Value(astring); return; } parameternode = parameternode->Next(); } stringparameter = new Dynamic_StringParameter(aparameter,astring); Parameter(stringparameter); } //======================================================================= //function : Parameter //purpose : //======================================================================= void Dynamic_FuzzyClass::Parameter(const Standard_CString aparameter, const Handle(Standard_Transient)& anobject) { Handle(Dynamic_ParameterNode) parameternode; Handle(Dynamic_Parameter) parameter; Handle(Dynamic_ObjectParameter) objectparameter; parameternode = thefirstparameternode; while(!parameternode.IsNull()) { parameter = parameternode->Object(); if(parameter->Name() == aparameter) { Handle(Dynamic_ObjectParameter)::DownCast(parameter)->Value(anobject); return; } parameternode = parameternode->Next(); } objectparameter = new Dynamic_ObjectParameter(aparameter,anobject); Parameter(objectparameter); } //======================================================================= //function : Value //purpose : //======================================================================= Standard_Boolean Dynamic_FuzzyClass::Value(const Standard_CString aparameter, Standard_Boolean& avalue) const { Handle(Dynamic_ParameterNode) parameternode; Handle(Dynamic_Parameter) parameter; parameternode = thefirstparameternode; while(!parameternode.IsNull()) { parameter = parameternode->Object(); if(parameter->Name() == aparameter) { avalue = (*(Handle_Dynamic_BooleanParameter*)¶meter)->Value(); return Standard_True; } parameternode = parameternode->Next(); } return Standard_False; } //======================================================================= //function : Value //purpose : //======================================================================= Standard_Boolean Dynamic_FuzzyClass::Value(const Standard_CString aparameter, Standard_Integer& avalue) const { Handle(Dynamic_ParameterNode) parameternode; Handle(Dynamic_Parameter) parameter; parameternode = thefirstparameternode; while(!parameternode.IsNull()) { parameter = parameternode->Object(); if(parameter->Name() == aparameter) { avalue = (*(Handle_Dynamic_IntegerParameter*)¶meter)->Value(); return Standard_True; } parameternode = parameternode->Next(); } return Standard_False; } //======================================================================= //function : Value //purpose : //======================================================================= Standard_Boolean Dynamic_FuzzyClass::Value(const Standard_CString aparameter, Standard_Real& avalue) const { Handle(Dynamic_ParameterNode) parameternode; Handle(Dynamic_Parameter) parameter; parameternode = thefirstparameternode; while(!parameternode.IsNull()) { parameter = parameternode->Object(); if(parameter->Name() == aparameter) { avalue = (*(Handle_Dynamic_RealParameter*)¶meter)->Value(); return Standard_True; } parameternode = parameternode->Next(); } return Standard_False; } //======================================================================= //function : Value //purpose : //======================================================================= Standard_Boolean Dynamic_FuzzyClass::Value(const Standard_CString aparameter, TCollection_AsciiString& avalue) const { Handle(Dynamic_ParameterNode) parameternode; Handle(Dynamic_Parameter) parameter; parameternode = thefirstparameternode; while(!parameternode.IsNull()) { parameter = parameternode->Object(); if(parameter->Name() == aparameter) { avalue = (*(Handle_Dynamic_StringParameter*)¶meter)->Value(); return Standard_True; } parameternode = parameternode->Next(); } return Standard_False; } //======================================================================= //function : Value //purpose : //======================================================================= Standard_Boolean Dynamic_FuzzyClass::Value(const Standard_CString aparameter, Handle(Standard_Transient)& anobject) const { Handle(Dynamic_ParameterNode) parameternode; Handle(Dynamic_Parameter) parameter; parameternode = thefirstparameternode; while(!parameternode.IsNull()) { parameter = parameternode->Object(); if(parameter->Name() == aparameter) { anobject = (*(Handle_Dynamic_ObjectParameter*)¶meter)->Value(); return Standard_True; } parameternode = parameternode->Next(); } return Standard_False; } //======================================================================= //function : Dump //purpose : //======================================================================= //void Dynamic_FuzzyClass::Dump(Standard_OStream& astream) const void Dynamic_FuzzyClass::Dump(Standard_OStream& ) const {}