近傍にある点の数のカウント
Namespace: fvalgcliAssembly: fvalgcli (in fvalgcli.dll) Version: 3.1.0.0 (3.1.0.11)
Syntax
C# |
---|
public static int fnFIE_cg_near_points_count(
PNT_T_PTR pnts,
int num,
int radius,
INT_PTR ans_num_tbl
) |
Visual Basic |
---|
Public Shared Function fnFIE_cg_near_points_count (
pnts As PNT_T_PTR,
num As Integer,
radius As Integer,
ans_num_tbl As INT_PTR
) As Integer |
Return Value
Type:
Int32
以下のエラーコードを返します。
エラーコード:f_err | 内容 |
---|
F_ERR_NONE | 正常終了 |
F_ERR_INVALID_PARAM | 不正なパラメータが渡された |
F_ERR_NOMEMORY | メモリ不足 |
F_ERR_NO_LICENCE | ライセンスエラー、または未初期化エラー |
Remarks
Examples
C# | Copy |
---|
using System;
using System.Collections.Generic;
using System.Text;
using fvalgcli;
namespace TC
{
public partial class FIE
{
[FvPluginExecute]
public void fnFIE_cg_near_points_count()
{
int status = (int)f_err.F_ERR_NONE;
PNT_T_PTR pnts = IntPtr.Zero;
int num = 0;
int radius = 1;
INT_PTR ans_num_tbl = IntPtr.Zero;
try
{
const int x_size = 8;
const int y_size = 3;
num = x_size * y_size;
pnts = PNT_T_PTR.alloc(num);
for (int y = 0; y < y_size; y++)
for (int x = 0; x < x_size; x++)
pnts[y * x_size + x] = PNT_T.init(x, y);
ans_num_tbl = INT_PTR.alloc(num);
status = api.fnFIE_cg_near_points_count(pnts, num, radius, ans_num_tbl);
Assert.IsTrue(status == (int)f_err.F_ERR_NONE, "エラーが発生しました。({0})", (f_err)status);
ConsoleOut.WriteFunctionName("");
bool check = true;
for (int i = 0; i < num; i++)
{
if (i % x_size == 0)
{
Console.Write("\n\t");
}
int ans_num = 4;
if (pnts[i].x <= 0 || pnts[i].x >= x_size - 1) ans_num--;
if (pnts[i].y <= 0 || pnts[i].y >= y_size - 1) ans_num--;
Console.Write("{0}, ", ans_num_tbl[i]);
if (ans_num_tbl[i] != ans_num) check = false;
}
Console.Write(" ...");
ConsoleOut.IsTrue(check);
}
catch (System.Exception ex)
{
throw ex;
}
finally
{
pnts.Dispose();
ans_num_tbl.Dispose();
}
}
}
} |
Visual Basic | Copy |
---|
Imports System.Collections.Generic
Imports System.Text
Imports fvalgcli
Public Partial Class FIE
<FvPluginExecute> _
Public Sub fnFIE_cg_near_points_count()
Dim status As Integer = CInt(f_err.F_ERR_NONE)
Dim pnts As PNT_T_PTR = IntPtr.Zero
Dim num As Integer = 0
Dim radius As Integer = 1
Dim ans_num_tbl As INT_PTR = IntPtr.Zero
Try
Const x_size As Integer = 8
Const y_size As Integer = 3
num = x_size * y_size
pnts = PNT_T_PTR.alloc(num)
For y As Integer = 0 To y_size - 1
For x As Integer = 0 To x_size - 1
pnts(y * x_size + x) = PNT_T.init(x, y)
Next
Next
ans_num_tbl = INT_PTR.alloc(num)
status = api.fnFIE_cg_near_points_count(pnts, num, radius, ans_num_tbl)
Assert.IsTrue(status = CInt(f_err.F_ERR_NONE), "エラーが発生しました。({0})", CType(status, f_err))
ConsoleOut.WriteFunctionName("")
Dim check As Boolean = True
For i As Integer = 0 To num - 1
If i Mod x_size = 0 Then
Console.Write(vbLf & vbTab)
End If
Dim ans_num As Integer = 4
If pnts(i).x <= 0 OrElse pnts(i).x >= x_size - 1 Then
ans_num -= 1
End If
If pnts(i).y <= 0 OrElse pnts(i).y >= y_size - 1 Then
ans_num -= 1
End If
Console.Write("{0}, ", ans_num_tbl(i))
If ans_num_tbl(i) <> ans_num Then
check = False
End If
Next
Console.Write(" ...")
ConsoleOut.IsTrue(check)
Catch ex As System.Exception
Throw ex
Finally
pnts.Dispose()
ans_num_tbl.Dispose()
End Try
End Sub
End Class |
See Also