001 /*----------------------------------------------------------------------------*/ 002 /* Copyright (c) FIRST 2008-2012. All Rights Reserved. */ 003 /* Open Source Software - may be modified and shared by FRC teams. The code */ 004 /* must be accompanied by the FIRST BSD license file in the root directory of */ 005 /* the project. */ 006 /*----------------------------------------------------------------------------*/ 007 008 package edu.wpi.first.wpilibj.image; 009 010 import com.sun.cldc.jna.Structure; 011 012 /** 013 * 014 * @author dtjones 015 */ 016 public class EllipseDescriptor extends Structure { 017 018 double m_minMajorRadius; 019 double m_maxMajorRadius; 020 double m_minMinorRadius; 021 double m_maxMinorRadius; 022 023 public EllipseDescriptor(double m_minMajorRadius, double m_maxMajorRadius, double m_minMinorRadius, double m_maxMinorRadius) { 024 this.m_minMajorRadius = m_minMajorRadius; 025 this.m_maxMajorRadius = m_maxMajorRadius; 026 this.m_minMinorRadius = m_minMinorRadius; 027 this.m_maxMinorRadius = m_maxMinorRadius; 028 allocateMemory(); 029 write(); 030 } 031 032 /** 033 * Free the c memory associated with this object. 034 */ 035 public void free() { 036 release(); 037 } 038 039 public void read() { 040 m_minMajorRadius = backingNativeMemory.getDouble(0); 041 m_maxMajorRadius = backingNativeMemory.getDouble(8); 042 m_minMinorRadius = backingNativeMemory.getDouble(16); 043 m_maxMinorRadius = backingNativeMemory.getDouble(24); 044 } 045 046 public void write() { 047 backingNativeMemory.setDouble(0, m_minMajorRadius); 048 backingNativeMemory.setDouble(8, m_maxMajorRadius); 049 backingNativeMemory.setDouble(16, m_minMinorRadius); 050 backingNativeMemory.setDouble(24, m_maxMinorRadius); 051 052 } 053 054 public int size() { 055 return 32; 056 } 057 }