public static ASTBase DowncastASTBase(IntPtr cPtr, bool owner)
{
if (cPtr.Equals(IntPtr.Zero)) return null;
ASTBase ab = new ASTBase(cPtr,false);
switch( ab.getTypeCode() )
{
default:
case (int)libsbml.AST_TYPECODE_BASE:
return new ASTBase(cPtr, owner);
/*
case (int)libsbml.AST_TYPECODE_CN_BASE:
return new ASTCnBase(cPtr, owner);
case (int)libsbml.AST_TYPECODE_FUNCTION_BASE:
return new ASTFunctionBase(cPtr, owner);
case (int)libsbml.AST_TYPECODE_NUMBER:
return new ASTNumber(cPtr, owner);
case (int)libsbml.AST_TYPECODE_CN_INTEGER:
return new ASTCnIntegerNode(cPtr, owner);
case (int)libsbml.AST_TYPECODE_CN_EXPONENTIAL:
return new ASTCnExponentialNode(cPtr, owner);
case (int)libsbml.AST_TYPECODE_CN_RATIONAL:
return new ASTCnRationalNode(cPtr, owner);
case (int)libsbml.AST_TYPECODE_CN_REAL:
return new ASTCnRealNode(cPtr, owner);
case (int)libsbml.AST_TYPECODE_CSYMBOL:
return new ASTCSymbol(cPtr, owner);
case (int)libsbml.AST_TYPECODE_CSYMBOL_AVOGADRO:
return new ASTCSymbolAvogadroNode(cPtr, owner);
case (int)libsbml.AST_TYPECODE_CSYMBOL_DELAY:
return new ASTCSymbolDelayNode(cPtr, owner);
case (int)libsbml.AST_TYPECODE_CSYMBOL_TIME:
return new ASTCSymbolTimeNode(cPtr, owner);
case (int)libsbml.AST_TYPECODE_FUNCTION:
return new ASTFunction(cPtr, owner);
case (int)libsbml.AST_TYPECODE_FUNCTION_UNARY:
return new ASTUnaryFunctionNode(cPtr, owner);
case (int)libsbml.AST_TYPECODE_FUNCTION_BINARY:
return new ASTBinaryFunctionNode(cPtr, owner);
case (int)libsbml.AST_TYPECODE_FUNCTION_NARY:
return new ASTNaryFunctionNode(cPtr, owner);
case (int)libsbml.AST_TYPECODE_FUNCTION_PIECEWISE:
return new ASTPiecewiseFunctionNode(cPtr, owner);
case (int)libsbml.AST_TYPECODE_FUNCTION_LAMBDA:
return new ASTLambdaFunctionNode(cPtr, owner);
case (int)libsbml.AST_TYPECODE_FUNCTION_CI:
return new ASTCiFunctionNode(cPtr, owner);
case (int)libsbml.AST_TYPECODE_FUNCTION_SEMANTIC:
return new ASTSemanticsNode(cPtr, owner);
case (int)libsbml.AST_TYPECODE_FUNCTION_QUALIFIER:
return new ASTQualifierNode(cPtr, owner);*/
case (int)libsbml.AST_TYPECODE_ASTNODE:
return new ASTNode(cPtr, owner);
}
//return new ASTBase(cPtr, owner);
}