# Release Notes

## 3.7 Release

New Bricked API module, include OpenVDS support.

Multiresolution Volumic rendering based on bricked data.

## 3.6 Release

Rework entire toolkit build and delivery system. Migration from ant to maven.

JOGL library upgrade from 2.2.4 to 2.3.2

## Modules

Tje J/GeoToolkit consists of nine differents components :

[J/CarnacPro release
      notes](#jcarnacpro)
Core graphics toolkit. Draw plots using an implementation of
        Model-View-Controller.
[INT Util release notes](#util)
Utility classes
[CGMOutput release
      notes](#cgmoutput)
Output to CGM files
[J/Chart release notes](#jchart)
Toolkit to draw graphs and charts
[J/Seismic release
      notes](#jseismic)
optional 
Draw seismic plots from SEGY data
[J/WellLog release
      notes](#jwelllog)
optional 
Draw WellLog plots from LAS, DLIS or OSD data
[J/WellSchematic release
        notes](#jwellschematics)
optional
Draw schematic diagrams of well equipement. Can be combined with
        WellLog plots from J/WellLog.
[J/Contour release
      notes](#jcontour)
optional 
Draw contour plots from height data defined on regular grids or
        point data
[J/Carnac3D release
        notes](#jcarnac3d)
optional
Offers a scenegraph API to render standard 3D objects as well as business objects such as Seismic slices in 3D and well log and trajectories.
<h3>JCarnacPro
<h4>3.6 release

JCarnacPro is now available through maven :

```xml
&lt;dependency&gt;
  &lt;groupId&gt;com.interactive&lt;/groupId&gt;
  &lt;artifactId&gt;jcarnacpro&lt;/artifactId&gt;
  &lt;version&gt;3.6.X&lt;/version&gt;
&lt;/dependency&gt;
```

Added a a triangulated mesh shape : cgTriangulatedMeshShape

<h4>3.5 release

Fixed divide by zero exception in getTile() of cgFloatImageBuffer and similar classes.

Added cgTextAnnotation, an anchored shape that can be used to place notes within a plot and supports in-line text editing. This shape is not supported in OpenGL.

<h3>INT Util

<h4>3.6 release

INT Util is now available through maven :

```xml
&lt;dependency&gt;
  &lt;groupId&gt;com.interactive&lt;/groupId&gt;
  &lt;artifactId&gt;int_util&lt;/artifactId&gt;
  &lt;version&gt;3.6.X&lt;/version&gt;
&lt;/dependency&gt;
```

<h4>3.5 Release and earlier

Added use of Matrix library from [ejml.org](http://ejml.org) to several new
classes (Polyfit and Polyfun).

Added a lot to analysis package

Added many more tests to the FFTs

Fixed error in inverse FFT.

Added com.interactive.util.gui.symboleditor.cgSymbolMap: a String valued analog to
the cgColorMap.

Deprecated getInstance methods in cgStandardFFTFactory, they reuse FFT instances
and so effectively creeatea globla variable. Shared mutable state leads to trouble.
Users should most likely use getNewInstance methods instead.

Fixed cgSpectraCalc bugs in first value of calcAmp, and calcPower. First return
value of these should never be negative.

Fixed infinity in result of db ...

Documented length limitation for RADIX_2_4_8 FFT: Note that the
RADIX_2_4_8 implementation can only process inputs of length 2^15 or less.

Changed cgStandardFFTFactory to default to RADIX_2 implementation which can accept
any size arrays.

Added getBestTypeForLength to cgStandardFFTFactory

<h3>CGM Output

<h4>3.6 release

CGM Output is now available through maven :

```xml
&lt;dependency&gt;
  &lt;groupId&gt;com.interactive&lt;/groupId&gt;
  &lt;artifactId&gt;cgmoutput&lt;/artifactId&gt;
  &lt;version&gt;3.6.X&lt;/version&gt;
&lt;/dependency&gt;
```

<h4>3.4 Release

Added support for transparent objects. Transparency is enabled by default but can be toggled with CGMEncoder#setTransparencyStatus(boolean). If transparency is enabled, shapes will use the alpha value from their graphic attribute.

Added support for layers. Layering is disabled by default but can be enabled with CGMEncoder#setLayeringStatus(boolean). Each cgPlotView component will be placed in a separate layer and use the name from the Component.getName() method. Layering support requires CGM metafile version 4.

Improved text placement exported as TextDrawMode.AS_TEXT by using the CGM restricted text command. AS_TEXT rendering requires CGM metafile version 3.

Deprecated CGMEncoder.BUFFER. The associated data structures are now allocated dynamically.

Improved control of the CGM version number. Using features like transparency or layers
will automatically adjust the CGM version number.

<h3>JChart
<h4>3.6 release

CGM Output is now available through maven :

```xml
&lt;dependency&gt;
  &lt;groupId&gt;com.interactive&lt;/groupId&gt;
  &lt;artifactId&gt;jchart&lt;/artifactId&gt;
  &lt;version&gt;3.6.X&lt;/version&gt;
&lt;/dependency&gt;
```

<h4>3.5 Release

cgHistogramChartVisual and cgRoseHistogramVisual use an updated cgHistogramBinDisc which implements [HdrHistogram](http://hdrhistogram.github.io/HdrHistogram/), an external library designed for recoding histograms of value measurements in latency and performance sensitive applications. 
Added support for cgBarChartVisual.BarType.PERCENTAGE in cgHistogramChartVisual.
Added support for cgBarChartVisual.BarType.BESIDE, STACKED, and PERCENTAGE to cgRoseHistogramVisual. The functions setMinimumTickDistance(int) and setTickPrecision(int) have been added to customize the adaptive tick placement. 
<h3>JSeismic

<h4>3.6 release

JSeismic Output is now available through maven :

```xml
&lt;dependency&gt;
  &lt;groupId&gt;com.interactive&lt;/groupId&gt;
  &lt;artifactId&gt;jseismic&lt;/artifactId&gt;
  &lt;version&gt;3.6.X&lt;/version&gt;
&lt;/dependency&gt;
```

<h4>3.5 Release

Added new quadratic interpolation of seismic trace density to improve the rendering quality (not supported in OpenGL yet).

Applied the quadratic interpolation in Seismic Editor for Interpolated Density specified in Rasterizer.

Added new methods on cgNormalization and an enum to permit changing the behavior when traces are shifted -- when
wiggles are filled at zero or at the trace average.

/*

* Enum controlling the behavior for how traces should be shifted and
* thus control the center position for wiggle fills.
*/
public static enum cgTraceShiftBehavior {
/**
  * Traces are never shifted, and equivalently wiggle fills are centered
  * at seismic amplitude zero.
*/
NEVER_SHIFT,
/**
  * Traces are always shifted, and equivalently wiggle fills are centered
  * at the seismic amplitude of the trace average.
*/
ALWAYS_SHIFT,
/**
  * If the dataset is detected to be velocity data or the normalization
  * mode is limits, then shift the trace.
*/
SHIFT_VELOCITY_DATA_OR_NORMALIZATION_LIMITS
};


The new methods are

public cgTraceShiftBehavior getTraceShiftBehavior();

public void setTraceShiftBehavior(cgTraceShiftBehavior shiftBehavior);

We also have two new methods in case someone wants to subclass cgTraceNormalization and directly change the behaviors

protected boolean isVelocityData(cgRangeFloat amplitudeRange);

protected  boolean shiftThisTrace(boolean isVelocityData, int normalizationMode)

Deprecated two methods

public void allowShiftOfSeismicData( boolean shiftable )

public boolean isSeismicDataShiftable()

Added new tutorial TraceShiftBehavior.java

Fixed cgSeismicPlot.exportToBI so that the title is centered and so that corner lables are exported.

Allow control (directColorModel) of if to interpolate colors.

<h3>JWellLog

<h4>3.6 release

JWellLog is now available through maven :

```xml
&lt;dependency&gt;
  &lt;groupId&gt;com.interactive&lt;/groupId&gt;
  &lt;artifactId&gt;jwelllog&lt;/artifactId&gt;
  &lt;version&gt;3.6.X&lt;/version&gt;
&lt;/dependency&gt;
```

<h4>3.5 Release

Improve header text layout for small tracks

Las 1.2, or 2.0 scanner now supports various simple time date formats (including ISO 8601 time data format) for vertical time base index log and an access to date_time base numerical value of STRT and STOP.

Las 1.2 or 2.0 scanner also supports log date and time separately in `~curve section for vertical time based index log.

Las 1.2 or 2.0 scanner also supports vertical index log data with two time columns of OLE automation date and time_date

Added new API getVerticalIndexType with enum VerticalIndexType for access to vertical index type of log.

Las 1.2, or 2.0 scanner is added supports to handle log date line properly with fused number.

Improve DLIS parsing performances

Fixed problem parsing nonstandard DLIS file that had misspelled
attributes INPUT-CHANNEL and OUTPUT-CHANNEL and some issue with ZONES (May 26)

Added two capabilities to JWellLog to suit training class...

Added interfaces and classes that permit lazy reading of LAS files. Added cgLasData.ParsedSection, and
cgLasFileInfo. You can use the cgLasFileInfo class to read only the meta data of an LAS file.

Fixed problem when parsing LAS 3 file that has no curves.

Added new tutorial LasLogCurveInfoExample that shows how to access curves from the LAS parser when
curve names are repeated.

JGTK-1951 Deviated track approximator changed to use two distinct thresholds: vertex position error and MD error.

JGTL-1950 Create pie slice method made more robust to handle colinear stations a and b.

Added support for DLIS multiple origins.

Greatly improved speed of DLIS parser.

Fixed bug in Open-GL version that caused welllog symbols to display within a black square.

<h3>Wellbore toolkit
<h4>3.6 release

Wellbore Toolkit is now available through maven :

```xml
&lt;dependency&gt;
  &lt;groupId&gt;com.interactive&lt;/groupId&gt;
  &lt;artifactId&gt;wellboretoolkit&lt;/artifactId&gt;
  &lt;version&gt;3.6.X&lt;/version&gt;
&lt;/dependency&gt;
```

<h4>3.4 Release

Trajectory bug fix — WellboreStationTrajectory. Fixed bug which would prevent plots from deviating if the starting depth was equal to 0.

Improved ergonomics in the demo: rubberband is not supported while deviated

Fixed broken hyper-links in documentation

Fixes for SimpleLabelDecorationPainter, DynamicRightLabelLayoutStrategy and DynamicLeftLabelLayoutStrategy to insure labels pin to the edge of the viewport instead of partially rendering off-screen.

Changed cement.svg to be light grey instead of candy stripes.

<h3>JContour

<h4>3.6 release

JContour is now available through maven :

```xml
&lt;dependency&gt;
  &lt;groupId&gt;com.interactive&lt;/groupId&gt;
  &lt;artifactId&gt;jcontour&lt;/artifactId&gt;
  &lt;version&gt;3.6.X&lt;/version&gt;
&lt;/dependency&gt;
```

<h4>3.4 Release

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.
<h3>JCarnac*-OGL : OpenGL rendering

<h4>3.6 release

OpenGL rendering pipeline for JCarnarcPro is now available through Maven :

OpenGL pipeline for base JCarnacPro

```xml
&lt;dependency&gt;
  &lt;groupId&gt;com.interactive&lt;/groupId&gt;
  &lt;artifactId&gt;jcarnac2d-ogl&lt;/artifactId&gt;
  &lt;version&gt;3.6.X&lt;/version&gt;
&lt;/dependency&gt;
```

OpenGL pipeline for JSeismic

```xml
&lt;dependency&gt;
  &lt;groupId&gt;com.interactive&lt;/groupId&gt;
  &lt;artifactId&gt;jseismic-ogl&lt;/artifactId&gt;
  &lt;version&gt;3.6.X&lt;/version&gt;
&lt;/dependency&gt;
```

OpenGL pipeline for JWellLog

```xml
&lt;dependency&gt;
  &lt;groupId&gt;com.interactive&lt;/groupId&gt;
  &lt;artifactId&gt;jwelllog-ogl&lt;/artifactId&gt;
  &lt;version&gt;3.6.X&lt;/version&gt;
&lt;/dependency&gt;
```

OpenGL pipeline for JContour

```xml
&lt;dependency&gt;
  &lt;groupId&gt;com.interactive&lt;/groupId&gt;
  &lt;artifactId&gt;jcontour-ogl&lt;/artifactId&gt;
  &lt;version&gt;3.6.X&lt;/version&gt;
&lt;/dependency&gt;
```

OpenGL pipeline for Wellbore toolkit

```xml
&lt;dependency&gt;
  &lt;groupId&gt;com.interactive&lt;/groupId&gt;
  &lt;artifactId&gt;jwellschematics-ogl&lt;/artifactId&gt;
  &lt;version&gt;3.6.X&lt;/version&gt;
&lt;/dependency&gt;
```

<h4>3.5 Release

Moved to JOGL JogAmp library version 2.3.2.
Remove all access to legacy OpenGL (2.1 and earlier).

Added support for Newt components.

<h3>JCarnac3D-OGL : OpenGL 3D rendering

<h4>3.6 release
JCarnac3D is not released along the JGeotoolkit.
You can get it via Maven

Core 3D Rendering

```xml
&lt;dependency&gt;
  &lt;groupId&gt;com.interactive&lt;/groupId&gt;
  &lt;artifactId&gt;jcarnac3d-ogl&lt;/artifactId&gt;
  &lt;version&gt;3.6.X&lt;/version&gt;
&lt;/dependency&gt;
```

3D Rendering for Seismic objects

```xml
&lt;dependency&gt;
  &lt;groupId&gt;com.interactive&lt;/groupId&gt;
  &lt;artifactId&gt;jseismic3d-ogl&lt;/artifactId&gt;
  &lt;version&gt;3.6.X&lt;/version&gt;
&lt;/dependency&gt;
```

3D Rendering for Wells

```xml
&lt;dependency&gt;
  &lt;groupId&gt;com.interactive&lt;/groupId&gt;
  &lt;artifactId&gt;jwelllog3d-ogl&lt;/artifactId&gt;
  &lt;version&gt;3.6.X&lt;/version&gt;
&lt;/dependency&gt;
```

A set of shape manipulator controllers have been added

Better directional light editor

Improve the API to control camera

Export to X3D is now supported for most of the nodes.