Hi,

I have started to use Standard Generator for depicting structures,
(described in: https://github.com/cdk/cdk/wiki/Standard-Generator).

The generated depictions are nicer before, but I have found some structures
that make StandardGenerator fail.

Following the part to the code used to create the depiction:

[...]

        final DOMImplementation domImplementation =
GenericDOMImplementation.getDOMImplementation();
        final Document document = domImplementation.createDocument("
http://www.w3.org/2000/svg";, "svg", null);
        final SVGGeneratorContext context =
SVGGeneratorContext.createDefault(document);
        final SVGGraphics2D svgGraphics2D = new SVGGraphics2D(context,
true);

        final List<IGenerator<IAtomContainer>> listOfGenerators = new
ArrayList<IGenerator<IAtomContainer>>();
        listOfGenerators.add(new BasicSceneGenerator());
        listOfGenerators.add(new StandardGenerator(new Font("Verdana",
Font.PLAIN, 18)));

        final AtomContainerRenderer atomContainerRenderer = new
AtomContainerRenderer(listOfGenerators, new AWTFontManager());

        final RendererModel rendererModel =
atomContainerRenderer.getRenderer2DModel();
        rendererModel.set(StandardGenerator.Visibility.class,
SymbolVisibility.iupacRecommendations());
        rendererModel.set(StandardGenerator.AtomColor.class, new
CDK2DAtomColors());

        try {
            atomContainerRenderer.paint(pIAtomContainer, new
AWTDrawVisitor(svgGraphics2D), new Rectangle(0, 0, width, height), true);
        } catch (final Exception e) {
            throw new CDKException("Error during image depiction.", e);
        }

        final StringWriter stringWriter = new StringWriter();

        final Element root = svgGraphics2D.getRoot();
        root.setAttributeNS(null, SVGConstants.SVG_VIEW_BOX_ATTRIBUTE, "0 0
"
                + (width) + " "
                + height);

        svgGraphics2D.stream(root, stringWriter);

[...]


With some structures the following exception is raised:

Caused by: java.lang.ArrayIndexOutOfBoundsException: 34
at
org.openscience.cdk.renderer.generators.standard.StandardBondGenerator$RingBondOffsetComparator.countLightElements(StandardBondGenerator.java:1303)
at
org.openscience.cdk.renderer.generators.standard.StandardBondGenerator$RingBondOffsetComparator.compare(StandardBondGenerator.java:1248)
at
org.openscience.cdk.renderer.generators.standard.StandardBondGenerator$RingBondOffsetComparator.compare(StandardBondGenerator.java:1214)
at java.util.TimSort.countRunAndMakeAscending(Unknown Source)
at java.util.TimSort.sort(Unknown Source)
at java.util.TimSort.sort(Unknown Source)
at java.util.Arrays.sort(Unknown Source)
at java.util.Collections.sort(Unknown Source)
at
org.openscience.cdk.renderer.generators.standard.StandardBondGenerator.ringPreferenceMap(StandardBondGenerator.java:1143)
at
org.openscience.cdk.renderer.generators.standard.StandardBondGenerator.<init>(StandardBondGenerator.java:146)
at
org.openscience.cdk.renderer.generators.standard.StandardBondGenerator.generateBonds(StandardBondGenerator.java:181)
at
org.openscience.cdk.renderer.generators.standard.StandardGenerator.generate(StandardGenerator.java:197)
at
org.openscience.cdk.renderer.generators.standard.StandardGenerator.generate(StandardGenerator.java:82)
at
org.openscience.cdk.renderer.AbstractRenderer.generateDiagram(AbstractRenderer.java:120)
at
org.openscience.cdk.renderer.AtomContainerRenderer.paint(AtomContainerRenderer.java:235)

Attached to this mail you will find an structure (.SDF format) which
produces the error.

Has anybody experienced similar behavior ? Is there any workaround ?

Thanks in advance.

Oscar

Attachment: EXAMPLE.sdf
Description: Binary data

------------------------------------------------------------------------------
Download BIRT iHub F-Type - The Free Enterprise-Grade BIRT Server
from Actuate! Instantly Supercharge Your Business Reports and Dashboards
with Interactivity, Sharing, Native Excel Exports, App Integration & more
Get technology previously reserved for billion-dollar corporations, FREE
http://pubads.g.doubleclick.net/gampad/clk?id=157005751&iu=/4140/ostg.clktrk
_______________________________________________
Cdk-user mailing list
Cdk-user@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/cdk-user

Reply via email to