protected double getCustomHeuristicCost(final String functionName, final String[] vertextAxisNames, final OrientVertex start, final OrientVertex goal, final OrientVertex current, final OrientVertex parent, final long depth, double dFactor) {
double heuristic = 0.0;
OrientGraph ff;
OFunction func = OrientGraph.getActiveGraph().getRawGraph().getMetadata().getFunctionLibrary().getFunction(functionName);
Object fValue = func.executeInContext(context, vertextAxisNames, start, goal, current, parent, depth, dFactor);
if (fValue != null && fValue instanceof Number) {
heuristic = doubleOrDefault(fValue, heuristic);
}
return heuristic;
}