/** @file SketchBorder.java * * @author marco corvi * @date jan 2013 * * @brief TopoDroid 3d sketch: surface border * -------------------------------------------------------- * Copyright This sowftare is distributed under GPL-3.0 or later * See the file COPYING. * -------------------------------------------------------- */ package com.topodroid.DistoX; import java.util.ArrayList; class SketchBorder { ArrayList< SketchSide > sides; Vector mCenter; SketchBorder() { sides = new ArrayList<SketchSide>(); mCenter = null; } void add( SketchSide s ) { sides.add( s ); } SketchSide get( int k ) { return sides.get(k); } int size() { return sides.size(); } /** get the "center" of the border * @param surface surface of this border (to get the vertices) */ Vector getCenter( SketchSurface surface ) { if ( mCenter == null ) { mCenter = new Vector(); int n = 0; for ( SketchSide side : sides ) { SketchVertex v1 = surface.getVertex( side.v1 ); if ( v1 != null ) { mCenter.plusEqual( v1 ); ++ n; } SketchVertex v2 = surface.getVertex( side.v2 ); if ( v2 != null ) { mCenter.plusEqual( v2 ); ++ n; } } mCenter.timesEqual( 1.0f/(2.0f*n) ); } return mCenter; } Vector getCenter() { return mCenter; } }