Projects >> jogl >>3352601e0860584509adf2b76f993d03893ded4b

Chunk
Conflicting content
                                                 tempVecAC, tempVecAB, tempVecAP) ) {
                    return current;
                }
<<<<<<< HEAD
                if(VectorUtil.testTri2SegIntersection(a, b, c, prevV, current) ||
                   VectorUtil.testTri2SegIntersection(a, b, c, current, nextV) ||
                   VectorUtil.testTri2SegIntersection(a, b, c, prevV, nextV)) {
=======
                if(VectorUtil.tri2SegIntersection(a, b, c, prevV, current)
                        || VectorUtil.tri2SegIntersection(a, b, c, current, nextV)
                        || VectorUtil.tri2SegIntersection(a, b, c, prevV, nextV)) {
>>>>>>> c67de337a8aaf52e36104c3f13e273aa19d21f1f
                    return current;
                }
            }
Solution content
                                                 tempVecAC, tempVecAB, tempVecAP) ) {
                    return current;
                }
                if(VectorUtil.testTri2SegIntersection(a, b, c, prevV, current) ||
                   VectorUtil.testTri2SegIntersection(a, b, c, current, nextV) ||
                   VectorUtil.testTri2SegIntersection(a, b, c, prevV, nextV)) {
                    return current;
                }
            }
File
OutlineShape.java
Developer's decision
Version 1
Kind of conflict
If statement
Chunk
Conflicting content
import jogamp.graph.curve.opengl.RegionFactory;
import jogamp.opengl.Debug;

<<<<<<< HEAD
import com.jogamp.graph.curve.opengl.GLRegion;
import com.jogamp.graph.geom.AABBox;
=======
>>>>>>> c67de337a8aaf52e36104c3f13e273aa19d21f1f
import com.jogamp.graph.geom.Triangle;
import com.jogamp.graph.geom.Vertex;
import com.jogamp.opengl.math.geom.AABBox;
Solution content
import jogamp.graph.curve.opengl.RegionFactory;
import jogamp.opengl.Debug;

import com.jogamp.graph.curve.opengl.GLRegion;
import com.jogamp.graph.geom.Triangle;
import com.jogamp.graph.geom.Vertex;
import com.jogamp.opengl.math.geom.AABBox;
File
Region.java
Developer's decision
Combination
Kind of conflict
Import
Chunk
Conflicting content
import com.jogamp.graph.geom.Vertex;
import com.jogamp.opengl.math.geom.AABBox;

<<<<<<< HEAD
/** Abstract Outline shape GL representation define the method an OutlineShape(s)
 * is bound and rendered.
 * 
 * @see GLRegion */
public abstract class Region {

    /** Debug flag for region impl (graph.curve) */
=======
/** Abstract Outline shape GL representation
 *  define the method an OutlineShape(s) is
 *  binded rendered.
 *
 *  @see GLRegion
 */
public abstract class Region {

    /** Debug flag for region impl (graph.curve)
     */
>>>>>>> c67de337a8aaf52e36104c3f13e273aa19d21f1f
    public static final boolean DEBUG = Debug.debug("graph.curve");

    public static final boolean DEBUG_INSTANCE = false;
Solution content
import com.jogamp.graph.geom.Vertex;
import com.jogamp.opengl.math.geom.AABBox;
 * @see GLRegion */

/** Abstract Outline shape GL representation define the method an OutlineShape(s)
 * is bound and rendered.
 *
public abstract class Region {

    /** Debug flag for region impl (graph.curve) */
    public static final boolean DEBUG = Debug.debug("graph.curve");

    public static final boolean DEBUG_INSTANCE = false;
File
Region.java
Developer's decision
Version 1
Kind of conflict
Comment
Chunk
Conflicting content
    public static final boolean DEBUG_INSTANCE = false;

<<<<<<< HEAD
    /** View based Anti-Aliasing, A Two pass region rendering, slower and more
     * resource hungry (FBO), but AA is perfect. Otherwise the default fast one
     * pass MSAA region rendering is being used. */
    public static final int VBAA_RENDERING_BIT = 1 << 0;

    /** Use non uniform weights [0.0 .. 1.9] for curve region rendering.
     * Otherwise the default weight 1.0 for uniform curve region rendering is
     * being applied. */
=======
    /** View based Anti-Aliasing, A Two pass region rendering, slower
     *  and more resource hungry (FBO), but AA is perfect.
     *  Otherwise the default fast one pass MSAA region rendering is being used.
     */
    public static final int VBAA_RENDERING_BIT = 1 << 0;

    /** Use non uniform weights [0.0 .. 1.9] for curve region rendering.
     *  Otherwise the default weight 1.0 for uniform curve region rendering is being applied.
     */
>>>>>>> c67de337a8aaf52e36104c3f13e273aa19d21f1f
    public static final int VARIABLE_CURVE_WEIGHT_BIT = 1 << 1;

    public static final int TWO_PASS_DEFAULT_TEXTURE_UNIT = 0;
Solution content
    public static final boolean DEBUG_INSTANCE = false;

    /** View based Anti-Aliasing, A Two pass region rendering, slower and more
     * resource hungry (FBO), but AA is perfect. Otherwise the default fast one
     * pass MSAA region rendering is being used. */
    public static final int VBAA_RENDERING_BIT = 1 << 0;

    /** Use non uniform weights [0.0 .. 1.9] for curve region rendering.
     * Otherwise the default weight 1.0 for uniform curve region rendering is
     * being applied. */
    public static final int VARIABLE_CURVE_WEIGHT_BIT = 1 << 1;

    public static final int TWO_PASS_DEFAULT_TEXTURE_UNIT = 0;
File
Region.java
Developer's decision
Version 1
Kind of conflict
Attribute
Comment
Chunk
Conflicting content
    protected ArrayList vertices = new ArrayList();

    public static boolean isVBAA(int renderModes) {
<<<<<<< HEAD
        return 0 != (renderModes & Region.VBAA_RENDERING_BIT);
    }

    /** Check if render mode capable of non uniform weights
     * 
     * @param renderModes
     *            bit-field of modes, e.g.
     *            {@link Region#VARIABLE_CURVE_WEIGHT_BIT},
     *            {@link Region#VBAA_RENDERING_BIT}
     * @return true of capable of non uniform weights */
    public static boolean isNonUniformWeight(int renderModes) {
        return 0 != (renderModes & Region.VARIABLE_CURVE_WEIGHT_BIT);
    }

    /** Create a {@link Region} defining the list of {@link OutlineShape}.
     * Combining the Shapes into single buffers.
     * @return the resulting Region inclusive the generated region
     */
    public static Region create(List outlineShapes, int renderModes) {
        final Region region = RegionFactory.create(renderModes);
        region.addOutlineShapes(outlineShapes);
        return region;
=======
        return 0 != ( renderModes & Region.VBAA_RENDERING_BIT );
    }

    /** Check if render mode capable of non uniform weights
     * @param renderModes bit-field of modes, e.g. {@link Region#VARIABLE_CURVE_WEIGHT_BIT},
     * {@link Region#VBAA_RENDERING_BIT}
     * @return true of capable of non uniform weights
     */
    public static boolean isNonUniformWeight(int renderModes) {
        return 0 != ( renderModes & Region.VARIABLE_CURVE_WEIGHT_BIT );
>>>>>>> c67de337a8aaf52e36104c3f13e273aa19d21f1f
    }

    /** 
Solution content
    protected ArrayList vertices = new ArrayList();

    public static boolean isVBAA(int renderModes) {
        return 0 != (renderModes & Region.VBAA_RENDERING_BIT);
    }

    /** Check if render mode capable of non uniform weights
     *
     * @param renderModes
     *            bit-field of modes, e.g.
     *            {@link Region#VARIABLE_CURVE_WEIGHT_BIT},
     *            {@link Region#VBAA_RENDERING_BIT}
     * @return true of capable of non uniform weights */
    public static boolean isNonUniformWeight(int renderModes) {
        return 0 != (renderModes & Region.VARIABLE_CURVE_WEIGHT_BIT);
    }

    /** Create a {@link Region} defining the list of {@link OutlineShape}.
     * Combining the Shapes into single buffers.
     * @return the resulting Region inclusive the generated region
     */
    public static Region create(List outlineShapes, int renderModes) {
        final Region region = RegionFactory.create(renderModes);
        region.addOutlineShapes(outlineShapes);
        return region;
    }
File
Region.java
Developer's decision
Version 1
Kind of conflict
Attribute
Comment
Method declaration
Method invocation
Method signature
Return statement
Variable
Chunk
Conflicting content
    }

    /** Get current Models
<<<<<<< HEAD
     * 
     * @return bit-field of render modes */
=======
     * @return bit-field of render modes
     */
>>>>>>> c67de337a8aaf52e36104c3f13e273aa19d21f1f
    public final int getRenderModes() {
        return renderModes;
    }
Solution content
    }

    /** Get current Models
     *
     * @return bit-field of render modes */
    public final int getRenderModes() {
        return renderModes;
    }
File
Region.java
Developer's decision
Version 1
Kind of conflict
Comment
Chunk
Conflicting content
    }

    /** Check if current Region is using VBAA
<<<<<<< HEAD
     * 
     * @return true if capable of two pass rendering - VBAA */
=======
     * @return true if capable of two pass rendering - VBAA
     */
>>>>>>> c67de337a8aaf52e36104c3f13e273aa19d21f1f
    public boolean isVBAA() {
        return Region.isVBAA(renderModes);
    }
Solution content
    }

    /** Check if current Region is using VBAA
     *
     * @return true if capable of two pass rendering - VBAA */
    public boolean isVBAA() {
        return Region.isVBAA(renderModes);
    }
File
Region.java
Developer's decision
Version 1
Kind of conflict
Comment
Chunk
Conflicting content
    }

    /** Check if current instance uses non uniform weights
<<<<<<< HEAD
     * 
     * @return true if capable of nonuniform weights */
=======
     * @return true if capable of nonuniform weights
     */
>>>>>>> c67de337a8aaf52e36104c3f13e273aa19d21f1f
    public boolean isNonUniformWeight() {
        return Region.isNonUniformWeight(renderModes);
    }
Solution content
    }

    /** Check if current instance uses non uniform weights
     *
     * @return true if capable of nonuniform weights */
    public boolean isNonUniformWeight() {
        return Region.isNonUniformWeight(renderModes);
    }
File
Region.java
Developer's decision
Version 1
Kind of conflict
Comment
Chunk
Conflicting content
        return Region.isNonUniformWeight(renderModes);
    }

<<<<<<< HEAD
    /** Get the current number of vertices associated with this region. This
     * number is not necessary equal to the OGL bound number of vertices.
     * 
     * @return vertices count */
    public final int getNumVertices() {
        return numVertices;
    }

    /** Adds a {@link Triangle} object to the Region This triangle will be bound
     * to OGL objects on the next call to {@code update}
     * 
     * @param tri
     *            a triangle object
     * 
     * @see update(GL2ES2) */
=======
    /** Get the current number of vertices associated
     * with this region. This number is not necessary equal to
     * the OGL bound number of vertices.
     * @return vertices count
     */
    public final int getNumVertices(){
        return numVertices;
    }

    /** Adds a {@link Triangle} object to the Region
     * This triangle will be bound to OGL objects
     * on the next call to {@code update}
     * @param tri a triangle object
     *
     * @see update(GL2ES2)
     */
>>>>>>> c67de337a8aaf52e36104c3f13e273aa19d21f1f
    public void addTriangle(Triangle tri) {
        triangles.add(tri);
        setDirty(true);
Solution content
        return Region.isNonUniformWeight(renderModes);
    }

    /** Get the current number of vertices associated with this region. This
     * number is not necessary equal to the OGL bound number of vertices.
     *
     * @return vertices count */
    public final int getNumVertices() {
        return numVertices;
    }

    /** Adds a {@link Triangle} object to the Region This triangle will be bound
     * to OGL objects on the next call to {@code update}
     *
     * @param tri
     *            a triangle object
     *
     * @see update(GL2ES2) */
    public void addTriangle(Triangle tri) {
        triangles.add(tri);
        setDirty(true);
File
Region.java
Developer's decision
Version 1
Kind of conflict
Comment
Method declaration
Chunk
Conflicting content
        setDirty(true);
    }

<<<<<<< HEAD
    /** Adds a list of {@link Triangle} objects to the Region These triangles are
     * to be binded to OGL objects on the next call to {@code update}
     * 
     * @param tris
     *            a list of triangle objects
     * 
     * @see update(GL2ES2) */
    public void addTriangles(List tris) {
=======
    /** Adds a list of {@link Triangle} objects to the Region
     * These triangles are to be binded to OGL objects
     * on the next call to {@code update}
     * @param tris an arraylist of triangle objects
     *
     * @see update(GL2ES2)
     */
    public void addTriangles(ArrayList tris) {
>>>>>>> c67de337a8aaf52e36104c3f13e273aa19d21f1f
        triangles.addAll(tris);
        setDirty(true);
    }
Solution content
        setDirty(true);
    }

    /** Adds a list of {@link Triangle} objects to the Region These triangles are
     * to be binded to OGL objects on the next call to {@code update}
     *
     * @param tris
     *            a list of triangle objects
     *
     * @see update(GL2ES2) */
    public void addTriangles(List tris) {
        triangles.addAll(tris);
        setDirty(true);
    }
File
Region.java
Developer's decision
Version 1
Kind of conflict
Comment
Method signature
Chunk
Conflicting content
        setDirty(true);
    }

<<<<<<< HEAD
    /** Adds a {@link Vertex} object to the Region This vertex will be bound to
     * OGL objects on the next call to {@code update}
     * 
     * @param vert
     *            a vertex objects
     * 
     * @see update(GL2ES2) */
=======
    /** Adds a {@link Vertex} object to the Region
     * This vertex will be bound to OGL objects
     * on the next call to {@code update}
     * @param vert a vertex objects
     *
     * @see update(GL2ES2)
     */
>>>>>>> c67de337a8aaf52e36104c3f13e273aa19d21f1f
    public void addVertex(Vertex vert) {
        vertices.add(vert);
        numVertices++;
Solution content
        setDirty(true);
    }

    /** Adds a {@link Vertex} object to the Region This vertex will be bound to
     * OGL objects on the next call to {@code update}
     *
     * @param vert
     *            a vertex objects
     *
     * @see update(GL2ES2) */
    public void addVertex(Vertex vert) {
        vertices.add(vert);
        numVertices++;
File
Region.java
Developer's decision
Version 1
Kind of conflict
Comment
Chunk
Conflicting content
        setDirty(true);
    }

<<<<<<< HEAD
    /** Adds a list of {@link Vertex} objects to the Region These vertices are to
     * be binded to OGL objects on the next call to {@code update}
     * 
     * @param verts
     *            a list of vertex objects
     * 
     * @see update(GL2ES2) */
    public void addVertices(List verts) {
=======
    /** Adds a list of {@link Vertex} objects to the Region
     * These vertices are to be binded to OGL objects
     * on the next call to {@code update}
     * @param verts an arraylist of vertex objects
     *
     * @see update(GL2ES2)
     */
    public void addVertices(ArrayList verts) {
>>>>>>> c67de337a8aaf52e36104c3f13e273aa19d21f1f
        vertices.addAll(verts);
        numVertices = vertices.size();
        setDirty(true);
Solution content
        setDirty(true);
    }

    /** Adds a list of {@link Vertex} objects to the Region These vertices are to
     * be binded to OGL objects on the next call to {@code update}
     *
     * @param verts
     *            a list of vertex objects
     *
     * @see update(GL2ES2) */
    public void addVertices(List verts) {
        vertices.addAll(verts);
        numVertices = vertices.size();
        setDirty(true);
File
Region.java
Developer's decision
Version 1
Kind of conflict
Comment
Method signature
Chunk
Conflicting content
        return box;
    }

<<<<<<< HEAD
    /** Check if this region is dirty. A region is marked dirty when new
     * Vertices, Triangles, and or Lines are added after a call to update()
     * 
     * @return true if region is Dirty, false otherwise
     * 
     * @see update(GL2ES2) */
=======
    /** Check if this region is dirty. A region is marked dirty
     * when new Vertices, Triangles, and or Lines are added after a
     * call to update()
     * @return true if region is Dirty, false otherwise
     *
     * @see update(GL2ES2)
     */
>>>>>>> c67de337a8aaf52e36104c3f13e273aa19d21f1f
    public final boolean isDirty() {
        return dirty;
    }
Solution content
        return box;
    }

    /** Check if this region is dirty. A region is marked dirty when new
     * Vertices, Triangles, and or Lines are added after a call to update()
     *
     * @return true if region is Dirty, false otherwise
     *
     * @see update(GL2ES2) */
    public final boolean isDirty() {
        return dirty;
    }
File
Region.java
Developer's decision
Version 1
Kind of conflict
Comment
Chunk
Conflicting content
     * Combining the Shapes into single buffers.
     * @return the resulting Region inclusive the generated region
     */
<<<<<<< HEAD
    public static GLRegion create(List outlineShapes, int renderModes) {
        return (GLRegion) Region.create(outlineShapes, renderModes);
    }

    /** 
     * Create an ogl {@link Region} defining this {@link OutlineShape}
     * @return the resulting Region.
     */
    public static GLRegion create(OutlineShape outlineShape, int renderModes) {
        return (GLRegion) Region.create(outlineShape, renderModes);
    }        
        
=======
    public static GLRegion create(OutlineShape[] outlineShapes, int renderModes) {
        final GLRegion region = RegionFactory.create(renderModes);

        int numVertices = region.getNumVertices();

        for(int index=0; index triangles = outlineShape.triangulate();
            region.addTriangles(triangles);
            ArrayList vertices = outlineShape.getVertices();
            for(int pos=0; pos < vertices.size(); pos++){
                Vertex vert = vertices.get(pos);
                vert.setId(numVertices++);
            }
            region.addVertices(vertices);
        }

        return region;
    }

    /**
     * Create an ogl {@link GLRegion} defining this {@link OutlineShape}
     * @return the resulting Region.
     */
    public static GLRegion create(OutlineShape outlineShape, int renderModes) {
        final GLRegion region = RegionFactory.create(renderModes);

        outlineShape.transformOutlines(OutlineShape.VerticesState.QUADRATIC_NURBS);
        ArrayList triangles = (ArrayList) outlineShape.triangulate();
        ArrayList vertices = (ArrayList) outlineShape.getVertices();
        region.addVertices(vertices);
        region.addTriangles(triangles);
        return region;
    }

>>>>>>> c67de337a8aaf52e36104c3f13e273aa19d21f1f
    protected GLRegion(int renderModes) {
        super(renderModes);
    }
Solution content
     * Combining the Shapes into single buffers.
     * @return the resulting Region inclusive the generated region
     */
    public static GLRegion create(List outlineShapes, int renderModes) {
        return (GLRegion) Region.create(outlineShapes, renderModes);
    }

    /**
     * Create an ogl {@link Region} defining this {@link OutlineShape}
     * @return the resulting Region.
     */
    public static GLRegion create(OutlineShape outlineShape, int renderModes) {
        return (GLRegion) Region.create(outlineShape, renderModes);
    }

    protected GLRegion(int renderModes) {
        super(renderModes);
    }
File
GLRegion.java
Developer's decision
Version 1
Kind of conflict
Comment
Method declaration
Chunk
Conflicting content
    /** Render an {@link OutlineShape} in 3D space at the position provided
     *  the triangles of the shapes will be generated, if not yet generated
     * @param region the OutlineShape to Render.
<<<<<<< HEAD
     * @param texWidth desired texture width for multipass-rendering. 
=======
     * @param position the initial translation of the outlineShape.
     * @param texWidth desired texture width for multipass-rendering.
>>>>>>> c67de337a8aaf52e36104c3f13e273aa19d21f1f
     *        The actual used texture-width is written back when mp rendering is enabled, otherwise the store is untouched.
     * @throws Exception if HwRegionRenderer not initialized
     */
Solution content
    /** Render an {@link OutlineShape} in 3D space at the position provided
     *  the triangles of the shapes will be generated, if not yet generated
     * @param region the OutlineShape to Render.
     * @param texWidth desired texture width for multipass-rendering.
     *        The actual used texture-width is written back when mp rendering is enabled, otherwise the store is untouched.
     * @throws Exception if HwRegionRenderer not initialized
     */
File
RegionRenderer.java
Developer's decision
Version 1
Kind of conflict
Comment
Chunk
Conflicting content
        if( !areRenderModesCompatible(region) ) {
            throw new GLException("Incompatible render modes, : region modes "+region.getRenderModes()+
                                  " doesn't contain renderer modes "+this.getRenderModes());
<<<<<<< HEAD
        }        
        drawImpl(gl, region, texWidth);
=======
        }
        drawImpl(gl, region, position, texWidth);
>>>>>>> c67de337a8aaf52e36104c3f13e273aa19d21f1f
    }

    /**
Solution content
        if( !areRenderModesCompatible(region) ) {
            throw new GLException("Incompatible render modes, : region modes "+region.getRenderModes()+
                                  " doesn't contain renderer modes "+this.getRenderModes());
        }
        drawImpl(gl, region, texWidth);
    }

    /**
File
RegionRenderer.java
Developer's decision
Version 1
Kind of conflict
Method invocation
Chunk
Conflicting content
     * Initialize shader and bindings for GPU based rendering bound to the given GL object's GLContext
     * if not initialized yet.
     * 

Leaves the renderer enabled, ie ShaderState.

<<<<<<< HEAD *

Shall be called by a {@code draw()} method, e.g. {@link RegionRenderer#draw(GL2ES2, Region, int)}

* ======= *

Shall be called by a {@code draw()} method, e.g. {@link RegionRenderer#draw(GL2ES2, Region, float[], int)}

* >>>>>>> c67de337a8aaf52e36104c3f13e273aa19d21f1f * @param gl referencing the current GLContext to which the ShaderState is bound to * @throws GLException if initialization failed */
Solution content
     * Initialize shader and bindings for GPU based rendering bound to the given GL object's GLContext
     * if not initialized yet.
     * 

Leaves the renderer enabled, ie ShaderState.

*

Shall be called by a {@code draw()} method, e.g. {@link RegionRenderer#draw(GL2ES2, Region, int)}

* * @param gl referencing the current GLContext to which the ShaderState is bound to * @throws GLException if initialization failed */
File
Renderer.java
Developer's decision
Version 1
Kind of conflict
Comment
Chunk
Conflicting content
     * @param gl the current GL state
     * @param font {@link Font} to be used
     * @param str text to be rendered
<<<<<<< HEAD
=======
     * @param position the lower left corner of the string
>>>>>>> c67de337a8aaf52e36104c3f13e273aa19d21f1f
     * @param fontSize font size
     * @param texWidth desired texture width for multipass-rendering.
     *        The actual used texture-width is written back when mp rendering is enabled, otherwise the store is untouched.
Solution content
     * @param gl the current GL state
     * @param font {@link Font} to be used
     * @param str text to be rendered
     * @param fontSize font size
     * @param texWidth desired texture width for multipass-rendering.
     *        The actual used texture-width is written back when mp rendering is enabled, otherwise the store is untouched.
File
TextRenderer.java
Developer's decision
Version 1
Kind of conflict
Comment
Chunk
Conflicting content
=======
   /** Default cache limit, see {@link #setCacheLimit(int)} */
   public static final int DEFAULT_CACHE_LIMIT = 256;

<<<<<<< HEAD
   private final HashMap stringCacheMap = new HashMap(DEFAULT_CACHE_LIMIT);
   private final ArrayList stringCacheArray = new ArrayList(DEFAULT_CACHE_LIMIT);
   private HashMap stringCacheMap = new HashMap(DEFAULT_CACHE_LIMIT);
   private ArrayList stringCacheArray = new ArrayList(DEFAULT_CACHE_LIMIT);
>>>>>>> c67de337a8aaf52e36104c3f13e273aa19d21f1f
   private int stringCacheLimit = DEFAULT_CACHE_LIMIT;
}
Solution content
   /** Default cache limit, see {@link #setCacheLimit(int)} */
   public static final int DEFAULT_CACHE_LIMIT = 256;

   private final HashMap stringCacheMap = new HashMap(DEFAULT_CACHE_LIMIT);
   private final ArrayList stringCacheArray = new ArrayList(DEFAULT_CACHE_LIMIT);
   private int stringCacheLimit = DEFAULT_CACHE_LIMIT;
}
File
TextRenderer.java
Developer's decision
Version 1
Kind of conflict
Attribute
Method invocation
Chunk
Conflicting content
 */
package com.jogamp.graph.font;

<<<<<<< HEAD
import java.util.List;

import com.jogamp.graph.curve.OutlineShape;
import com.jogamp.graph.geom.AABBox;
import com.jogamp.graph.geom.Vertex;
import com.jogamp.graph.geom.Vertex.Factory;
=======
import com.jogamp.opengl.math.geom.AABBox;
>>>>>>> c67de337a8aaf52e36104c3f13e273aa19d21f1f

/**
 * Interface wrapper for font implementation.
Solution content
 */
package com.jogamp.graph.font;

import java.util.List;

import com.jogamp.graph.curve.OutlineShape;
import com.jogamp.graph.geom.Vertex;
import com.jogamp.graph.geom.Vertex.Factory;
import com.jogamp.opengl.math.geom.AABBox;

/**
 * Interface wrapper for font implementation.
File
Font.java
Developer's decision
Combination
Kind of conflict
Import
Chunk
Conflicting content
    public float getStringWidth(CharSequence string, float pixelSize);
    public float getStringHeight(CharSequence string, float pixelSize);
    public AABBox getStringBounds(CharSequence string, float pixelSize);
<<<<<<< HEAD
    
    public boolean isPrintableChar( char c );  

    /**
     * @param glyph source of the created OutlineShape
     * @param vertexFactory factory for vertices
     * @return OutlineShape of the glyph
     */
    public OutlineShape getOutlineShape(Glyph glyph, Factory vertexFactory);
    
    /**
     * @param shapes optional storage of OutlineShapes passed by user, new shapes are appended
     * @param string source of the created OutlineShapes
     * @param pixelSize
     * @param vertexFactory factory for vertices
     * @return List of OutlineShapes, one OutlineShape per character
     */
    public List getOutlineShapes(List shapes, CharSequence string, float pixelSize, Factory vertexFactory);
    
=======

    public boolean isPrintableChar( char c );

>>>>>>> c67de337a8aaf52e36104c3f13e273aa19d21f1f
    /** Shall return {@link #getFullFamilyName()} */
    @Override
    public String toString();
Solution content
    public float getStringWidth(CharSequence string, float pixelSize);
    public float getStringHeight(CharSequence string, float pixelSize);
    public AABBox getStringBounds(CharSequence string, float pixelSize);

    public boolean isPrintableChar( char c );

    /**
     * @param glyph source of the created OutlineShape
     * @param vertexFactory factory for vertices
     * @return OutlineShape of the glyph
     */
    public OutlineShape getOutlineShape(Glyph glyph, Factory vertexFactory);

    /**
     * @param shapes optional storage of OutlineShapes passed by user, new shapes are appended
     * @param string source of the created OutlineShapes
     * @param pixelSize
     * @param vertexFactory factory for vertices
     * @return List of OutlineShapes, one OutlineShape per character
     */
    public List getOutlineShapes(List shapes, CharSequence string, float pixelSize, Factory vertexFactory);

    /** Shall return {@link #getFullFamilyName()} */
    @Override
    public String toString();
File
Font.java
Developer's decision
Version 1
Kind of conflict
Comment
Method interface
Chunk
Conflicting content
     */
    public static void computeVector(float[] vector, float[] v1, float[] v2)
    {
<<<<<<< HEAD:src/jogl/classes/com/jogamp/graph/math/VectorUtil.java
=======
        final float[] vector = new float[3];
>>>>>>> c67de337a8aaf52e36104c3f13e273aa19d21f1f:src/jogl/classes/com/jogamp/opengl/math/VectorUtil.java
        vector[0] = v2[0] - v1[0];
        vector[1] = v2[1] - v1[1];
        vector[2] = v2[2] - v1[2];        
Solution content
     */
    public static void computeVector(float[] vector, float[] v1, float[] v2) {
        vector[0] = v2[0] - v1[0];
        vector[1] = v2[1] - v1[1];
File
VectorUtil.java
Developer's decision
Manual
Kind of conflict
Method invocation
Variable
Chunk
Conflicting content
     * @return true if the vertex d is inside the circle defined by the
     * vertices a, b, c. from paper by Guibas and Stolfi (1985).
     */
<<<<<<< HEAD:src/jogl/classes/com/jogamp/graph/math/VectorUtil.java
    public static boolean inCircle(Vertex a, Vertex b, Vertex c, Vertex d){
        final float[] A = a.getCoord();
        final float[] B = b.getCoord();
        final float[] C = c.getCoord();
        final float[] D = d.getCoord();
        return (A[0] * A[0] + A[1] * A[1]) * triArea(B, C, D) -
               (B[0] * B[0] + B[1] * B[1]) * triArea(A, C, D) +
               (C[0] * C[0] + C[1] * C[1]) * triArea(A, B, D) -
               (D[0] * D[0] + D[1] * D[1]) * triArea(A, B, C) > 0;
=======
    public static boolean inCircle(Vert2fImmutable a, Vert2fImmutable b, Vert2fImmutable c, Vert2fImmutable d){
        return (a.getX() * a.getX() + a.getY() * a.getY()) * triArea(b, c, d) -
               (b.getX() * b.getX() + b.getY() * b.getY()) * triArea(a, c, d) +
               (c.getX() * c.getX() + c.getY() * c.getY()) * triArea(a, b, d) -
               (d.getX() * d.getX() + d.getY() * d.getY()) * triArea(a, b, c) > 0;
>>>>>>> c67de337a8aaf52e36104c3f13e273aa19d21f1f:src/jogl/classes/com/jogamp/opengl/math/VectorUtil.java
    }

    /** Computes oriented area of a triangle
Solution content
     * @return true if the vertex d is inside the circle defined by the
     * vertices a, b, c. from paper by Guibas and Stolfi (1985).
     */
    public static boolean inCircle(Vert2fImmutable a, Vert2fImmutable b, Vert2fImmutable c, Vert2fImmutable d) {
        final float[] A = a.getCoord();
        final float[] B = b.getCoord();
        final float[] C = c.getCoord();
        final float[] D = d.getCoord();
        return (A[0] * A[0] + A[1] * A[1]) * triArea(B, C, D) -
               (B[0] * B[0] + B[1] * B[1]) * triArea(A, C, D) +
               (C[0] * C[0] + C[1] * C[1]) * triArea(A, B, D) -
               (D[0] * D[0] + D[1] * D[1]) * triArea(A, B, C) > 0;
    }

    /** Computes oriented area of a triangle
File
VectorUtil.java
Developer's decision
Combination
Kind of conflict
Array access
Method invocation
Method signature
Return statement
Variable
Chunk
Conflicting content
        final float[] A = a.getCoord();
     * @return compute twice the area of the oriented triangle (a,b,c), the area
     * is positive if the triangle is oriented counterclockwise.
     */
<<<<<<< HEAD:src/jogl/classes/com/jogamp/graph/math/VectorUtil.java
    public static float triArea(Vertex a, Vertex b, Vertex c){
        final float[] B = b.getCoord();
        final float[] C = c.getCoord();        
        return (B[0] - A[0]) * (C[1] - A[1]) - (B[1] - A[1])*(C[0] - A[0]);
    }

    /** Computes oriented area of a triangle
     * @param A first vertex
     * @param B second vertex
     * @param C third vertex
     * @return compute twice the area of the oriented triangle (a,b,c), the area
     * is positive if the triangle is oriented counterclockwise.
     */
    public static float triArea(float[] A, float[] B, float[] C){
        return (B[0] - A[0]) * (C[1] - A[1]) - (B[1] - A[1])*(C[0] - A[0]);
    }
    
    /** Check if a vertex is in triangle using 
     * barycentric coordinates computation. 
=======
    public static float triArea(Vert2fImmutable a, Vert2fImmutable b, Vert2fImmutable c) {
        return (b.getX() - a.getX()) * (c.getY() - a.getY()) - (b.getY() - a.getY())*(c.getX() - a.getX());
    }

    /** Check if a vertex is in triangle using
     * barycentric coordinates computation.
>>>>>>> c67de337a8aaf52e36104c3f13e273aa19d21f1f:src/jogl/classes/com/jogamp/opengl/math/VectorUtil.java
     * @param a first triangle vertex
     * @param b second triangle vertex
     * @param c third triangle vertex
Solution content
     * @return compute twice the area of the oriented triangle (a,b,c), the area
     * is positive if the triangle is oriented counterclockwise.
     */
    public static float triArea(Vert2fImmutable a, Vert2fImmutable b, Vert2fImmutable c){
        final float[] A = a.getCoord();
        final float[] B = b.getCoord();
        final float[] C = c.getCoord();
        return (B[0] - A[0]) * (C[1] - A[1]) - (B[1] - A[1]) * (C[0] - A[0]);
    }

    /** Computes oriented area of a triangle
     * @param A first vertex
     * @param B second vertex
     * @param C third vertex
     * @return compute twice the area of the oriented triangle (a,b,c), the area
     * is positive if the triangle is oriented counterclockwise.
     */
    public static float triArea(float[] A, float[] B, float[] C){
        return (B[0] - A[0]) * (C[1] - A[1]) - (B[1] - A[1])*(C[0] - A[0]);
    }

    /** Check if a vertex is in triangle using
     * barycentric coordinates computation.
     * @param a first triangle vertex
     * @param b second triangle vertex
     * @param c third triangle vertex
File
VectorUtil.java
Developer's decision
Combination
Kind of conflict
Comment
Method declaration
Chunk
Conflicting content
     * @param p the vertex in question
     * @return true if p is in triangle (a, b, c), false otherwise.
     */
<<<<<<< HEAD:src/jogl/classes/com/jogamp/graph/math/VectorUtil.java
    public static boolean vertexInTriangle(float[] a, float[]  b, float[]  c, 
                                           float[] p,
                                           float[] ac, float[] ab, float[] ap){
        // Compute vectors        
        computeVector(ac, a, c); //v0
        computeVector(ab, a, b); //v1
        computeVector(ap, a, p); //v2
=======
    public static boolean vertexInTriangle(float[] a, float[]  b, float[]  c, float[]  p){
        // Compute vectors
        final float[] ac = computeVector(a, c); //v0
        final float[] ab = computeVector(a, b); //v1
        final float[] ap = computeVector(a, p); //v2
>>>>>>> c67de337a8aaf52e36104c3f13e273aa19d21f1f:src/jogl/classes/com/jogamp/opengl/math/VectorUtil.java

        // Compute dot products
        final float dot00 = dot(ac, ac);
Solution content
     * @param p the vertex in question
     * @return true if p is in triangle (a, b, c), false otherwise.
     */
    public static boolean vertexInTriangle(float[] a, float[]  b, float[]  c,
                                           float[] p,
                                           float[] ac, float[] ab, float[] ap){
        // Compute vectors
        computeVector(ac, a, c); //v0
        computeVector(ab, a, b); //v1
        computeVector(ap, a, p); //v2

        // Compute dot products
        final float dot00 = dot(ac, ac);
File
VectorUtil.java
Developer's decision
Version 1
Kind of conflict
Comment
Method invocation
Method signature
Variable
Chunk
Conflicting content
        // Compute dot products
        final float dot00 = dot(ac, ac);
        final float dot01 = dot(ac, ab);
<<<<<<< HEAD:src/jogl/classes/com/jogamp/graph/math/VectorUtil.java
        final float dot11 = dot(ab, ab);
        final float dot02 = dot(ac, ap);
=======
        final float dot02 = dot(ac, ap);
        final float dot11 = dot(ab, ab);
>>>>>>> c67de337a8aaf52e36104c3f13e273aa19d21f1f:src/jogl/classes/com/jogamp/opengl/math/VectorUtil.java
        final float dot12 = dot(ab, ap);

        // Compute barycentric coordinates
Solution content
        // Compute dot products
        final float dot00 = dot(ac, ac);
        final float dot01 = dot(ac, ab);
        final float dot02 = dot(ac, ap);
        final float dot11 = dot(ab, ab);
        final float dot12 = dot(ab, ap);

        // Compute barycentric coordinates
File
VectorUtil.java
Developer's decision
Version 2
Kind of conflict
Method invocation
Variable
Chunk
Conflicting content
     * @return the intersection coordinates if the segments intersect, otherwise
     * returns null
     */
<<<<<<< HEAD:src/jogl/classes/com/jogamp/graph/math/VectorUtil.java
    public static float[] seg2SegIntersection(Vertex a, Vertex b, Vertex c, Vertex d) {
=======
    public static float[] seg2SegIntersection(Vert2fImmutable a, Vert2fImmutable b, Vert2fImmutable c, Vert2fImmutable d) {
>>>>>>> c67de337a8aaf52e36104c3f13e273aa19d21f1f:src/jogl/classes/com/jogamp/opengl/math/VectorUtil.java
        final float determinant = (a.getX()-b.getX())*(c.getY()-d.getY()) - (a.getY()-b.getY())*(c.getX()-d.getX());

        if (determinant == 0)
Solution content
     * @return the intersection coordinates if the segments intersect, otherwise
     * returns null
     */
    public static float[] seg2SegIntersection(Vert2fImmutable a, Vert2fImmutable b, Vert2fImmutable c, Vert2fImmutable d) {
        final float determinant = (a.getX()-b.getX())*(c.getY()-d.getY()) - (a.getY()-b.getY())*(c.getX()-d.getX());

        if (determinant == 0)
File
VectorUtil.java
Developer's decision
Version 2
Kind of conflict
Method signature
Chunk
Conflicting content
        return false;
     * @param e vertex 2 of first segment
     * @return true if the segment intersects at least one segment of the triangle, false otherwise
     */
<<<<<<< HEAD:src/jogl/classes/com/jogamp/graph/math/VectorUtil.java
    public static boolean testTri2SegIntersection(Vertex a, Vertex b, Vertex c, Vertex d, Vertex e){
        return testSeg2SegIntersection(a, b, d, e) ||
               testSeg2SegIntersection(b, c, d, e) ||
               testSeg2SegIntersection(a, c, d, e) ;
=======
    public static boolean tri2SegIntersection(Vert2fImmutable a, Vert2fImmutable b, Vert2fImmutable c, Vert2fImmutable d, Vert2fImmutable e){
        if(seg2SegIntersection(a, b, d, e) != null)
            return true;
        if(seg2SegIntersection(b, c, d, e) != null)
            return true;
        if(seg2SegIntersection(a, c, d, e) != null)
            return true;
>>>>>>> c67de337a8aaf52e36104c3f13e273aa19d21f1f:src/jogl/classes/com/jogamp/opengl/math/VectorUtil.java
    }
}
Solution content
     * @param e vertex 2 of first segment
     * @return true if the segment intersects at least one segment of the triangle, false otherwise
     */
    public static boolean testTri2SegIntersection(Vert2fImmutable a, Vert2fImmutable b, Vert2fImmutable c, Vert2fImmutable d, Vert2fImmutable e){
        return testSeg2SegIntersection(a, b, d, e) ||
               testSeg2SegIntersection(b, c, d, e) ||
               testSeg2SegIntersection(a, c, d, e) ;
    }
}
File
VectorUtil.java
Developer's decision
Manual
Kind of conflict
If statement
Method invocation
Method signature
Return statement
Chunk
Conflicting content
import com.jogamp.graph.geom.Vertex.Factory;

import com.jogamp.graph.curve.OutlineShape;
<<<<<<< HEAD
// import com.jogamp.graph.math.Quaternion;

public class GlyphShape {
    
    // private Quaternion quat= null;
    private Glyph glyph;
    private OutlineShape shape;
    
=======
import com.jogamp.opengl.math.Quaternion;

public class GlyphShape {

    private Quaternion quat= null;
    private OutlineShape shape = null;

>>>>>>> c67de337a8aaf52e36104c3f13e273aa19d21f1f
    /** Create a new Glyph shape
     * based on Parametric curve control polyline
     */
Solution content
import com.jogamp.graph.geom.Vertex.Factory;
import com.jogamp.graph.curve.OutlineShape;
// import com.jogamp.opengl.math.Quaternion;

public class GlyphShape {

    // private Quaternion quat= null;
    private Glyph glyph;
    private OutlineShape shape;

    /** Create a new Glyph shape
     * based on Parametric curve control polyline
     */
File
GlyphShape.java
Developer's decision
Manual
Kind of conflict
Attribute
Class signature
Comment
Import
Chunk
Conflicting content
    }

    public final Vertex.Factory vertexFactory() { return shape.vertexFactory(); }
<<<<<<< HEAD
    
    public final Glyph getGlyph() { 
        return glyph;
    }
    
    public final OutlineShape getShape() {
        return shape;
    }
    
    public final int getNumVertices() {
=======

    public OutlineShape getShape() {
        return shape;
    }

    public int getNumVertices() {
>>>>>>> c67de337a8aaf52e36104c3f13e273aa19d21f1f
        return shape.getVertices().size();
    }
Solution content
    }

    public final Vertex.Factory vertexFactory() { return shape.vertexFactory(); }

    public final Glyph getGlyph() {
        return glyph;
    }

    public final OutlineShape getShape() {
        return shape;
    }

    public final int getNumVertices() {
        return shape.getVertices().size();
    }
File
GlyphShape.java
Developer's decision
Version 1
Kind of conflict
Method declaration
Method signature
Chunk
Conflicting content
    public final Quaternion getQuat() {
        return quat;
    }
<<<<<<< HEAD
    
     * Set the Quaternion that shall defien the rotation
=======

    /** Set the Quaternion that shall defien the rotation
>>>>>>> c67de337a8aaf52e36104c3f13e273aa19d21f1f
     * of this shape.
     * @param quat
    public final void setQuat(Quaternion quat) {
Solution content
    public final Quaternion getQuat() {
        return quat;
    }

    /**
     * Set the Quaternion that shall define the rotation
     * of this shape.
     * @param quat
    public final void setQuat(Quaternion quat) {
File
GlyphShape.java
Developer's decision
Manual
Kind of conflict
Comment
Chunk
Conflicting content
    public final void setQuat(Quaternion quat) {
        this.quat = quat;
    }
<<<<<<< HEAD
     */
    
=======

>>>>>>> c67de337a8aaf52e36104c3f13e273aa19d21f1f
    /** Triangluate the glyph shape
     * @return ArrayList of triangles which define this shape
     */
Solution content
    public final void setQuat(Quaternion quat) {
        this.quat = quat;
    }
    */

    /** Triangluate the glyph shape
     * @return ArrayList of triangles which define this shape
     */
File
GlyphShape.java
Developer's decision
Version 1
Kind of conflict
Other
Chunk
Conflicting content
     */
    public static final int STATIC_FONT_SIZE = 10;

<<<<<<< HEAD
    private final ArrayList glyphs = new ArrayList();
    private final CharSequence str;
    private final String fontname;
    private GLRegion region;

    private final SVertex origin = new SVertex();
=======
    private ArrayList glyphs = new ArrayList();
    private CharSequence str;
    private String fontname;
    private GLRegion region;

    private SVertex origin = new SVertex();
>>>>>>> c67de337a8aaf52e36104c3f13e273aa19d21f1f

    /**
     * 

Uses {@link #STATIC_FONT_SIZE}.

Solution content
     */
    public static final int STATIC_FONT_SIZE = 10;

    private final ArrayList glyphs = new ArrayList();
    private final CharSequence str;
    private final String fontname;
    private GLRegion region;

    private final SVertex origin = new SVertex();

    /**
     * 

Uses {@link #STATIC_FONT_SIZE}.

File
GlyphString.java
Developer's decision
Version 1
Kind of conflict
Attribute
Method invocation
Chunk
Conflicting content
     * @param str string text
     * @return the created {@link GlyphString} instance
     */
<<<<<<< HEAD
    public static GlyphString createString(OutlineShape shape, Factory vertexFactory, Font font, int fontSize, CharSequence str) {
    	List shapes = font.getOutlineShapes(null, str, fontSize, vertexFactory);
=======
    public static GlyphString createString(OutlineShape shape, Factory vertexFactory, Font font, int fontSize, String str) {
    	ArrayList shapes = ((FontInt)font).getOutlineShapes(str, fontSize, vertexFactory);
>>>>>>> c67de337a8aaf52e36104c3f13e273aa19d21f1f

        GlyphString glyphString = new GlyphString(font.getName(Font.NAME_UNIQUNAME), str);
        glyphString.createfromOutlineShapes(vertexFactory, font, str, shapes);
Solution content
     * @param str string text
     * @return the created {@link GlyphString} instance
     */
    public static GlyphString createString(OutlineShape shape, Factory vertexFactory, Font font, int fontSize, CharSequence str) {
    	List shapes = font.getOutlineShapes(null, str, fontSize, vertexFactory);

        GlyphString glyphString = new GlyphString(font.getName(Font.NAME_UNIQUNAME), str);
        glyphString.createfromOutlineShapes(vertexFactory, font, str, shapes);
File
GlyphString.java
Developer's decision
Version 1
Kind of conflict
Method invocation
Method signature
Variable
Chunk
Conflicting content
            if(shapes.get(index) == null){
                continue;
            }
<<<<<<< HEAD
            GlyphShape glyphShape = new GlyphShape(vertexFactory,
                                                   font.getGlyph(str.charAt(index)),
                                                   shapes.get(index));
=======
            GlyphShape glyphShape = new GlyphShape(vertexFactory, shapes.get(index));
>>>>>>> c67de337a8aaf52e36104c3f13e273aa19d21f1f

            if(glyphShape.getNumVertices() < 3) {
                continue;
Solution content
            if(shapes.get(index) == null){
                continue;
            }
            GlyphShape glyphShape = new GlyphShape(vertexFactory,
                                                   font.getGlyph(str.charAt(index)),
                                                   shapes.get(index));

            if(glyphShape.getNumVertices() < 3) {
                continue;
File
GlyphString.java
Developer's decision
Version 1
Kind of conflict
Method invocation
Variable
Chunk
Conflicting content
    public GLRegion createRegion(GL2ES2 gl, int renderModes){
        region = RegionFactory.create(renderModes);
        // region.setFlipped(true);
<<<<<<< HEAD
        float y = 0;
        float advanceTotal = 0;
        AffineTransform t = new AffineTransform();
=======
>>>>>>> c67de337a8aaf52e36104c3f13e273aa19d21f1f

        int numVertices = region.getNumVertices();
Solution content
    public GLRegion createRegion(GL2ES2 gl, int renderModes){
        region = RegionFactory.create(renderModes);
        // region.setFlipped(true);
        float y = 0;
        float advanceTotal = 0;
        AffineTransform t = new AffineTransform();

        int numVertices = region.getNumVertices();
File
GlyphString.java
Developer's decision
Version 1
Kind of conflict
Method invocation
Variable
Chunk
Conflicting content
            ArrayList gtris = glyphShape.triangulate();
            region.addTriangles(gtris);

<<<<<<< HEAD
            final ArrayList gVertices = glyphShape.getVertices();
=======
            final ArrayList gVertices = glyph.getVertices();
>>>>>>> c67de337a8aaf52e36104c3f13e273aa19d21f1f
            for(int j=0; j
Solution content
            ArrayList gtris = glyphShape.triangulate();
            region.addTriangles(gtris);

            final ArrayList gVertices = glyphShape.getVertices();
            for(int j=0; j
File
GlyphString.java
Developer's decision
Version 1
Kind of conflict
Method invocation
Variable
Chunk
Conflicting content
import com.jogamp.graph.curve.OutlineShape;
import com.jogamp.graph.font.Font;
import com.jogamp.graph.font.FontFactory;
<<<<<<< HEAD
import com.jogamp.graph.geom.AABBox;
=======
import com.jogamp.graph.font.Font.Glyph;
>>>>>>> c67de337a8aaf52e36104c3f13e273aa19d21f1f
import com.jogamp.graph.geom.Vertex;
import com.jogamp.graph.geom.Vertex.Factory;
import com.jogamp.opengl.math.geom.AABBox;
Solution content
import com.jogamp.graph.curve.OutlineShape;
import com.jogamp.graph.font.Font;
import com.jogamp.graph.font.FontFactory;
import com.jogamp.graph.geom.Vertex;
import com.jogamp.graph.geom.Vertex.Factory;
import com.jogamp.opengl.math.geom.AABBox;
File
TypecastFont.java
Developer's decision
None
Kind of conflict
Import
Chunk
Conflicting content
        }
        char2Glyph = new IntObjectHashMap(cmapentries + cmapentries/4);
    }
<<<<<<< HEAD
    
=======

>>>>>>> c67de337a8aaf52e36104c3f13e273aa19d21f1f
    @Override
    public StringBuilder getName(StringBuilder sb, int nameIndex) {
        return font.getName(nameIndex, sb);
Solution content
        }
        char2Glyph = new IntObjectHashMap(cmapentries + cmapentries/4);
    }

    @Override
    public StringBuilder getName(StringBuilder sb, int nameIndex) {
        return font.getName(nameIndex, sb);
File
TypecastFont.java
Developer's decision
Version 1
Kind of conflict
Blank
Chunk
Conflicting content
    public float getAdvanceWidth(int i, float pixelSize) {
        return font.getHmtxTable().getAdvanceWidth(i) * metrics.getScale(pixelSize);
    }
<<<<<<< HEAD
    
=======

>>>>>>> c67de337a8aaf52e36104c3f13e273aa19d21f1f
    @Override
    public Metrics getMetrics() {
        if (metrics == null) {
Solution content
    public float getAdvanceWidth(int i, float pixelSize) {
        return font.getHmtxTable().getAdvanceWidth(i) * metrics.getScale(pixelSize);
    }

    @Override
    public Metrics getMetrics() {
        if (metrics == null) {
File
TypecastFont.java
Developer's decision
Version 1
Kind of conflict
Blank
Chunk
Conflicting content
    }

    @Override
<<<<<<< HEAD
    public OutlineShape getOutlineShape(Glyph glyph, Factory vertexFactory) {
        return TypecastRenderer.getOutlineShape(this, glyph, vertexFactory);
    }
    
    @Override
    public List getOutlineShapes(List shapes, CharSequence string, float pixelSize, Factory vertexFactory) {
=======
    public ArrayList getOutlineShapes(CharSequence string, float pixelSize, Factory vertexFactory) {
>>>>>>> c67de337a8aaf52e36104c3f13e273aa19d21f1f
    	AffineTransform transform = new AffineTransform(vertexFactory);
    	return TypecastRenderer.getOutlineShapes(shapes, this, string, pixelSize, transform, vertexFactory);
    }
Solution content
    }

    @Override
    public OutlineShape getOutlineShape(Glyph glyph, Factory vertexFactory) {
        return TypecastRenderer.getOutlineShape(this, glyph, vertexFactory);
    }

    @Override
    public List getOutlineShapes(List shapes, CharSequence string, float pixelSize, Factory vertexFactory) {
    	AffineTransform transform = new AffineTransform(vertexFactory);
    	return TypecastRenderer.getOutlineShapes(shapes, this, string, pixelSize, transform, vertexFactory);
    }
File
TypecastFont.java
Developer's decision
Version 1
Kind of conflict
Annotation
Method declaration
Method signature
Chunk
Conflicting content
    final public int getNumGlyphs() {
        return font.getNumGlyphs();
    }
<<<<<<< HEAD
    
=======

>>>>>>> c67de337a8aaf52e36104c3f13e273aa19d21f1f
    @Override
    public boolean isPrintableChar( char c ) {
        return FontFactory.isPrintableChar(c);
Solution content
    final public int getNumGlyphs() {
        return font.getNumGlyphs();
    }

    @Override
    public boolean isPrintableChar( char c ) {
        return FontFactory.isPrintableChar(c);
File
TypecastFont.java
Developer's decision
Version 1
Kind of conflict
Blank
Chunk
Conflicting content
    public boolean isPrintableChar( char c ) {
        return FontFactory.isPrintableChar(c);
    }
<<<<<<< HEAD
    
=======

>>>>>>> c67de337a8aaf52e36104c3f13e273aa19d21f1f
    @Override
    public String toString() {
        return getFullFamilyName(null).toString();
Solution content
    public boolean isPrintableChar( char c ) {
        return FontFactory.isPrintableChar(c);
    }

    @Override
    public String toString() {
        return getFullFamilyName(null).toString();
File
TypecastFont.java
Developer's decision
Version 1
Kind of conflict
Blank
Chunk
Conflicting content
        }
        return this.pathSized;
    }
<<<<<<< HEAD
    
    public int hashCode() {
        // 31 * x == (x << 5) - x
        int hash = 31 + font.getName(Font.NAME_UNIQUNAME).hashCode();
        return ((hash << 5) - hash) + id;
    }    
=======
>>>>>>> c67de337a8aaf52e36104c3f13e273aa19d21f1f
}
Solution content
        }
        return this.pathSized;
    }

    public int hashCode() {
        // 31 * x == (x << 5) - x
        int hash = 31 + font.getName(Font.NAME_UNIQUNAME).hashCode();
        return ((hash << 5) - hash) + id;
    }
}
File
TypecastGlyph.java
Developer's decision
Version 1
Kind of conflict
Method declaration
Chunk
Conflicting content
                advanceTotal = 0;
            } else if (character == ' ') {
                advanceTotal += font.getAdvanceWidth(Glyph.ID_SPACE, pixelSize);
<<<<<<< HEAD
            } else {         
                final Glyph glyph = font.getGlyph(character);
                final Path2D gp = ((GlyphInt)glyph).getPath();
                final float scale = metrics.getScale(pixelSize);
                t.translate(advanceTotal, y);
                t.scale(scale, scale);
                p[i].append(gp.iterator(t), false);
                advanceTotal += glyph.getAdvance(pixelSize, true);
            }
=======
                continue;
            }
            Glyph glyph = font.getGlyph(character);
            Path2D gp = ((GlyphInt)glyph).getPath();
            float scale = metrics.getScale(pixelSize);
            t.translate(advanceTotal, y);
            t.scale(scale, scale);
            p[i].append(gp.iterator(t), false);
            advanceTotal += glyph.getAdvance(pixelSize, true);
>>>>>>> c67de337a8aaf52e36104c3f13e273aa19d21f1f
        }
    }
Solution content
            }
                advanceTotal = 0;
            } else if (character == ' ') {
                advanceTotal += font.getAdvanceWidth(Glyph.ID_SPACE, pixelSize);
            } else {
                final Glyph glyph = font.getGlyph(character);
                final Path2D gp = ((GlyphInt)glyph).getPath();
                final float scale = metrics.getScale(pixelSize);
                t.translate(advanceTotal, y);
                t.scale(scale, scale);
                p[i].append(gp.iterator(t), false);
                advanceTotal += glyph.getAdvance(pixelSize, true);
        }
    }
File
TypecastRenderer.java
Developer's decision
Version 1
Kind of conflict
Continue statement
Method invocation
Variable