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 009 package edu.wpi.first.wpilibj.image; 010 011 import com.sun.cldc.jna.Structure; 012 013 /** 014 * 015 * @author dtjones 016 */ 017 public class CurveOptions extends Structure{ 018 019 int m_extractionMode; 020 int m_threshold; 021 int m_filterSize; 022 int m_minLength; 023 int m_rowStepSize; 024 int m_columnStepSize; 025 int m_maxEndPointGap; 026 int m_onlyClosed; 027 int m_subPixelAccuracy; 028 029 public CurveOptions(int m_extractionMode, int m_threshold, int m_filterSize, int m_minLength, int m_rowStepSize, int m_columnStepSize, int m_maxEndPointGap, int m_onlyClosed, int m_subPixelAccuracy) { 030 this.m_extractionMode = m_extractionMode; 031 this.m_threshold = m_threshold; 032 this.m_filterSize = m_filterSize; 033 this.m_minLength = m_minLength; 034 this.m_rowStepSize = m_rowStepSize; 035 this.m_columnStepSize = m_columnStepSize; 036 this.m_maxEndPointGap = m_maxEndPointGap; 037 this.m_onlyClosed = m_onlyClosed; 038 this.m_subPixelAccuracy = m_subPixelAccuracy; 039 allocateMemory(); 040 write(); 041 } 042 043 044 045 public void read() { 046 } 047 048 public void write() { 049 backingNativeMemory.setInt(0, m_extractionMode); 050 backingNativeMemory.setInt(4, m_threshold); 051 backingNativeMemory.setInt(8, m_filterSize); 052 backingNativeMemory.setInt(12, m_minLength); 053 backingNativeMemory.setInt(16, m_rowStepSize); 054 backingNativeMemory.setInt(20, m_columnStepSize); 055 backingNativeMemory.setInt(24, m_maxEndPointGap); 056 backingNativeMemory.setInt(28, m_onlyClosed); 057 backingNativeMemory.setInt(32, m_subPixelAccuracy); 058 } 059 060 public int size() { 061 return 36; 062 } 063 064 public void free() { 065 release(); 066 } 067 068 }