public SolverGeometricObject ExtractGeometry(Node node) { if (!SolverGeometryExtracter.HasShapeOrInteractive(node)) { return(null); } var functionName = FunctionUtils.GetFunctionName(node); if (string.IsNullOrEmpty(functionName)) { return(null); } if (IsHidden(node)) { return(null); } SolverGeometryExtracter extracter; var tryExtracter = GeometryExtracters.TryGetValue(functionName, out extracter); return(!tryExtracter ? _genericExtracter.ExtractSolverGeometry(node) : extracter.ExtractSolverGeometry(node)); }
private void RegisterExtracter(string shapeType, SolverGeometryExtracter extracter) { GeometryExtracters[shapeType] = extracter; }