001package plugins.kernel.roi.descriptor.measure; 002 003import icy.roi.ROI; 004import icy.roi.ROIDescriptor; 005import icy.sequence.Sequence; 006import icy.type.point.Point5D; 007 008/** 009 * MassCenter Z coordinate ROI descriptor class (see {@link ROIDescriptor}) 010 * 011 * @author Stephane 012 */ 013public class ROIMassCenterZDescriptor extends ROIDescriptor 014{ 015 public static final String ID = "Mass center Z"; 016 017 public ROIMassCenterZDescriptor() 018 { 019 super(ID, "Center Z", Double.class); 020 } 021 022 @Override 023 public String getDescription() 024 { 025 return "Mass center Z"; 026 } 027 028 @Override 029 public Object compute(ROI roi, Sequence sequence) throws UnsupportedOperationException 030 { 031 return Double.valueOf(getMassCenterZ(ROIMassCenterDescriptorsPlugin.computeMassCenter(roi))); 032 } 033 034 /** 035 * Returns position Z of specified Point5D object 036 */ 037 public static double getMassCenterZ(Point5D point) 038 { 039 if (point == null) 040 return Double.NaN; 041 042 return point.getZ(); 043 } 044}