The following updates apply to JContour-OGL and now requires at least OpenGL 3.2
- Added support for stacked cgContourShape objects in cgShapeListLayer or cgStackedPlotView.
- Added option to disable/enable boundary smoothing when isoline smoothing is enabled using cgContourShape#setSmoothBoundary(boolean)
- Color map now supports transparency
- Updated label placement and filtering algorithm to improve accuracy and reduce memory footprint.
- Isoline smoothing will automatically disable if the input file provided to cgContourShape#setGrid(cgContourGenericGrid) has over 50,000 triangles. cgContourShape#setSmoothIsolines(boolean) can be called after the contour is loaded to re-enable isoline smoothing but it is not recommended.
Small changes to allow JContour-OGL to use new labelling options.
- Added new tutorial, LabelingOptions.
- Added collision detection/removal for line labels.
- Added option to orient labels in gradient direction. Previously they were oriented up (which looks bad for isolines that meander around the vertical).
- Adding line smoothing
- Added ability of label letters to closely track the contour lines.
- Changed enum cgContourLabelsDirection.DEFAULT to cgContourLabelsDirection.TOWARDS_TOP_OF_PLOT
Details of the API changes can be found in JContour_32changes.txt.
For the 3.1 release, J/Contour moved up to JDK 5, and all collections were generified. Many improvements were made to the printing, see the J/CarnacPro release notes. Additionally, the new print to scale feature was completed in this release. This necessitated a change in the requirements that applications must follow in order for printing to work properly.
We encourage customers with large data sets to use cells like the ContourDataSource tutorial (implements the interface cgContourDataSource). Memory consumption is much lower when cells are used . For example, with a grid size of 900, when using cells the memory consumption is 95 MB, but without cells the memory consumption is 630 MB.
Changes for 3.1 are the following:
- The editors use the JGoodies Forms layout manager which is in
forms.jar. You will need to distribute this jar with your application if you want to use our editor dialogs. - Removed these deprecated methods:
cgContourFaultList.modelToGridTransform,ContourFillVisual.transparentHolesandholeColor,FaultInputProcessor.modelToGridTransform,cgAbstractFillVisual.transparentHolesandholeColor. - Fixed bug that caused contour lines to disappear
- Fixed two errors in the Contour editor
- Fixed bug causing illegal argument exception.
- Made gridding API easier to use by making the gridding classes smarter about how they manage state during construction of the grid.
- Fixed a bug that caused the isolines to hit the level label.
- Fixed a bug where the level label formats were not being changed.
<h1>API Comparison Comparing API changes in jcontour.jar from 3.0 to 3.1. <h2>Classes Changed
|
com.interactive.jcontour2d.datasource.cgContourDataSource Methods Changed
|
|
com.interactive.jcontour2d.fault.cgContourFaultList Methods Deleted
|
|
com.interactive.jcontour2d.gridder.AbstractGridder Methods Changed
|
|
com.interactive.jcontour2d.gridder.BSplineGridder Methods Added
|
|
com.interactive.jcontour2d.gridder.JBSGridding.JBSGridding Methods Deleted
|
|
com.interactive.jcontour2d.gridder.JMCGridding.JMCGridding Methods Deleted
|
|
com.interactive.jcontour2d.gridder.MinCurvatureGridder Methods Added
|
|
com.interactive.jcontour2d.gridder.utilities.XCordComparator Methods Added
|
|
com.interactive.jcontour2d.internal.ContourDataProcessor Methods Changed
|
|
com.interactive.jcontour2d.internal.ContourFillVisual Methods Deleted
|
|
com.interactive.jcontour2d.internal.ContourLineVisual Methods Added
|
|
com.interactive.jcontour2d.internal.CustomArrayList Methods Changed
|
|
com.interactive.jcontour2d.internal.FaultInputProcessor Methods Deleted
|
|
com.interactive.jcontour2d.internal.OneGridDataSource Methods Changed
|
|
com.interactive.jcontour2d.internal.OneGridIterator Methods Added
|
|
com.interactive.jcontour2d.internal.StlCompatibleVector Methods Changed
|
|
com.interactive.jcontour2d.processor.cgContourDataProcessor Methods Changed
|
|
com.interactive.jcontour2d.shape.cgContourShape Methods Changed
|
|
com.interactive.jcontour2d.visual.cgAbstractFillVisual Methods Deleted
|
|
com.interactive.jcontour2d.visual.cgVisualsFactory Methods Changed
|
<h1>API Changes in JContour API changes in jcontour.jar from 2.7.1 to 3.0.0. <h2>Classes Added
| com.interactive.jcontour2d.shape.cgIsoline |
<h2>Classes Changed
|
com.interactive.jcontour2d.grid.cgContourAbstractGrid Methods Added
|
|
com.interactive.jcontour2d.grid.cgContourGrid Fields Added
|
|
com.interactive.jcontour2d.grid.cgContourTriangularGrid Methods Added
|
|
com.interactive.jcontour2d.scale.cgScaleRange Methods Added
|
|
com.interactive.jcontour2d.shape.cgContourShape Methods Added
|
|
com.interactive.jcontour2d.visual.cgAbstractLineVisual Methods Added
|
The API changes from 2.7.1 to 3.0.0 are rather small.
We added support for iterating over the contour isolines. The method getIsolines was added to cgContourShape).
We improved the way that isoline labels are rendered.
A key addition was to add support so that any component in the view can print to a PDF file.
We added a method, getValueAtModelPoint, to cgContourAbstractGrid) that easily gets the altitude value at a model point.
You can also enable an internal consistency checker by specifying the java property jcontour.internal.validation to "true". This can be helpful to explore the origins of a contouring failure.
The examples now conform to the Sun recommended practice of constructing the GUI on the event thread.
We added code to the tutorial ContourShape to cause the altitude values to be more regular (use fewer digits). That code can be found with the comment:
/***************************************************************************
*
* Rationalize the range of heights/depths so that we get simpler numbers
* in the display
*
**************************************************************************/<h3>Bug Fixes
- Fixed a problem with the color map when changing the number of contour levels. If you shrink the number of contour levels to 1, and then increase the number of levels to greater than one, the color map gets messed up.
- Resolved a problem where after setting contour levels 1 and then reset it to another value it gives the wrong contour.
- The colormap will now wrap or stretch.
2.7.1 Release Notes
If you migrate code from 2.6 to 2.7, you'll need to add code like shown below. We've added it at the end of the method that reads the contour data and creates the grid. For example, you can look at the readGridData method in the ContourEditor tutorial.
cgRect gridSpace = new cgRect(0, 0, xSize - 1, ySize - 1);
cgTransformation gridToModel = new cgTransformation(gridSpace,
_modelSpace);
grid.setGridToModel(gridToModel);<h3>Demos
- Added new gridder demo, demos/JContour/gridderdemo that demonstrates the new gridding capabilities.
- The demos use the new method
FileFinder.findPathin the util package to allow them to run with more flexibility in the current working directory. Previously the demos would only run with a single specific current working directory. Now they will run with the current working directory set either to the toolkit installed root, or any directory below that. - Added a document that shows how to run the examples.
<h3>Tutorials
- Added a tutorial, ContourTriangular to demonstrate triangular grids.
- Added a tutorial, ContourDataSource to demonstrate the datasource package.
<h3>Functionality
<h4>Added Functionality
- Added a new gridder package with the ability to construct grids from point data (altitude values defined on random points).
- Added triangular grids.
- Added data cells in a new datasource package so that the entire grid file does not need to be in memory at one time
- Some method names were rationalized to standard java form.
<h4>Changed Functionality
- Created grid to model mapping for triangle grid data to fix the contour labeling bug.
- Added APIs for setting skip near point flag in contour data processor to overcome the discontinue of contour lines generated by large number of small triangle grids.
- com.interactive.jcontour2d.grid.cgContourGrid
- now derives from cgContourGenericGrid
- new methods setBorders, getBorders,getGridToModel, setGridToModel, and getModelLimits
- renamed buildNet to buildTriangleNet
- renamed getBuildRange() to getRange()
- Added new classes cgContourAbstractGrid, cgContourGenericGrid, cgContourTriangularGrid, and HoleValueSet in the package com.interactive.jcontour2d.grid
- Added new package gridder, and new classes for gridding.
- com.interactive.jcontour2d.processor.cgContourDataProcessor
- get and setGrid() changed to get and setDataSource()
- removed build()
- added n_areas() preBuild(), postBuild(), buildArea(), isosourcesToIsolines(), and clearArea()
- com.interactive.jcontour2d.shape.cgContourShape
- changed grid_to_model(cgTransformation) to setGridToModel and cgTransformation grid_to_model() to getGridToModel
- added currentRenderingArea()
- get*Visual now return new abstract visual types
- get and setGrid now manipulate a cgContourGenericGrid
- added setDataSource
- com.interactive.jcontour2d.visual.cgAbstractVisual
- render arguments changed from (cgShapeRenderer,cgRect,cgGridRange) to (cgShapeRenderer,cgRect)
- com.interactive.jcontour2d.visual.cgVisualsFactory
- added getBorderVisual()
<h4>Deprecated Functionality
- src.com.interactive.jcontour2d.fault.cgContourFaultList.java
- modelToGridTransform( cgTransformation tr ) - not needed now
- src.com.interactive.jcontour2d.internal.FaultInputProcessor.java
- modelToGridTransform( cgTransformation tr ) - not needed now
- src.com.interactive.jcontour2d.visual.cgAbstractFillVisual.java x4
- transparentHoles( boolean t ) - Now holes are always transparent
- transparentHoles() - Now holes are always transparent
- holeColor( Color col ) - Now holes are always transparent
- holeColor() - Now holes are always transparent
2.6 Release Notes