SNAP Objects - Generic
개요
SNAP에서 일반적으로 사용되는 데이터 타입과 구조를 다루는 노드들로 구성됩니다. 데이터를 저장, 처리, 변환하는 데 필요한 다양한 기능을 제공합니다.
1 Variables
단일 데이터 또는 구조체를 저장하고 관리하는 노드입니다.
Int8, Int16, Int32, Int64
- 정수형 데이터를 저장하는 노드입니다. Int 뒤의 숫자는 비트 수를 표현하며, 비트 수가 많을수록 더 큰 범위의 정수를 표현할 수 있습니다.
Uint8, Uint16, Uint32, Uint64
- 부호 없는 정수형 데이터를 저장하는 노드입니다. 음수를 표현하지 못하는 대신 같은 비트 수에서 양의 정수 표현 범위가 2배 더 큽니다.
Float, Double
- 부동소수점 방식으로 실수를 저장하는 노드입니다. Float는 32비트, Double은 64비트입니다.
Bool
- 논리값(참/거짓)을 저장하는 노드입니다. 0과 1 또는 True, False로 값을 설정할 수 있습니다.
String
- 문자열을 저장하는 노드입니다. 파일 경로, Figure String 등을 저장하는 데에도 사용됩니다.
- Figure String이란 Image View의 Figure 데이터를 문자열로 표현한 특별한 형태의 String입니다. FLImaging은 Figure String과 Figure 간 변환이 자유롭습니다.
- 문자열을 저장하는 노드입니다. 파일 경로, Figure String 등을 저장하는 데에도 사용됩니다.
Point, Point3, Point4
- 다차원 좌표를 표현하는 노드입니다.
- Point: 2차원 점, Point3: 3차원 점, Point4: 4차원 점을 각각 표현합니다.
- 타입은 Bool, String을 제외한 기본 타입을 지원합니다.
2 Arrays, Arrays2, Multi Variables
단일 데이터 및 구조체를 배열로 저장하고 관리하는 노드입니다.
Multi Variables
- 기본 데이터 타입(Int, Uint, Float, Double 등)을 배열로 관리할 수 있는 노드입니다.
Arrays
- 기본 데이터 타입뿐만 아니라 구조체(Point, Point3, Point4 등)도 배열로 저장할 수 있습니다.
Arrays2
- Arrays2는 Array
객체를 저장할 수 있는 2차원 배열입니다.
- Arrays2는 Array
3 Figure
다양한 도형 객체를 저장하는 노드입니다.
FLPoint
- 점을 표현하는 노드입니다.
FLLine
- 선을 표현하는 노드입니다.
FLRect
- 직사각형을 표현하는 노드입니다.
FLQuad
- 사변형을 표현하는 노드입니다.
FLCircle
- 원을 표현하는 노드입니다.
FLEllipse
- 타원을 표현하는 노드입니다.
Figure
- 다양한 도형객체를 포괄하는 Figure 노드입니다.
Figure Array
- 여러 개의 Figure를 배열로 저장하는 노드입니다.
Figure Text
- 입력한 Text를 도형으로 변환하여 저장하는 노드입니다.
- 주로 View Layer 영역에 텍스트로 정보를 출력하기 위해 사용합니다.
4 3D View Camera
3D View의 시점을 설정합니다.

5 3D Object, Height Map
3D 개발에서 사용하며, 3D View 노드에 연결하여 3D 객체를 디스플레이할 수 있습니다.
3D Object
- 3D 객체의 데이터를 표현할 수 있는 노드입니다.
3D Object Height Map
- 1채널 2D 이미지를 사용하여 3차원 Height map 객체를 모델링 및 렌더링합니다. 이미지는 2D 공간에서 (X, Y) 평면으로 정의되며, 픽셀의 밝기값은 Z(높이)로 변환되어 해당 지점에서의 높이를 결정합니다.
- 결과적으로 (X,Y)는 평면의 좌표를 나타내고 Z는 각 픽셀의 값으로 결정됩니다.
6 Image
이미지를 관리하는 노드입니다. FLImage 확장자인 .flif 뿐만 아니라 .png, .gif 확장자 등 다양한 이미지 파일도 사용 가능합니다.

6.1 SNAP Process
Image 노드에서 실행할 수 있는 프로세스 목록입니다. 기본값은 Assign입니다.
6.1.1 이미지 노드 자체 동작
- Load
- 지정된 파일 경로에서 이미지를 불러옵니다.
- Save
- 설정된 경로에 이미지를 저장합니다.
- Clear
- 이미지 노드를 초기화합니다.
- Clear Selected Page
- 선택된 페이지의 이미지 버퍼를 초기화합니다. (페이지 자체는 유지)
- Remove Selected Page
- 선택된 페이지를 삭제합니다.
- Select Page
- 특정 페이지를 선택합니다.
- Set Page Name To Selected Page
- 선택된 페이지의 이름을 입력받은 이름으로 변경합니다.
6.1.2 다른 Image 노드와의 상호작용
- Assign
- 입력(Input)으로 연결된 Image 노드의 전체 페이지를 복사합니다.
- Assign To Selected Page
- 선택된 페이지에 입력된 Image 노드의 특정 페이지를 복사합니다.
- Push Back Page
- 입력된 이미지에서 지정된 페이지 하나를 현재 이미지의 맨 뒤에 추가합니다.
- Push Back Pages
- 입력된 이미지의 모든 페이지를 현재 이미지의 맨 뒤에 추가합니다.
- Push Front Page
- 입력된 이미지에서 지정된 페이지 하나를 현재 이미지의 맨 앞에 추가합니다.
- Push Front Pages
- 입력된 이미지의 모든 페이지를 현재 이미지의 맨 앞에 추가합니다.
- Insert To Selected Page
- 선택된 페이지 인덱스에 입력된 이미지에서 지정된 페이지 하나를 삽입합니다.
- Insert To Selected Pages
- 선택된 페이지 인덱스에 입력된 이미지의 모든 페이지를 삽입합니다.
6.1.3 이미지 내 Figure 조작
- Push Back Figure
- 입력된 Figure를 현재 페이지에 추가합니다. (Array의 맨 뒤에 저장)
- Push Front Figure
- 입력된 Figure를 현재 페이지에 추가합니다. (Array의 맨 앞에 저장)
- Remove Figure
- 선택된 Figure Index에 해당하는 Figure를 삭제합니다.
- Clear Figures
- 선택된 페이지에서 모든 Figure를 삭제합니다
- Clear Figures All Pages
- 모든 페이지에서 Figure를 삭제합니다.
7 Block
블록(Block) 은 여러 노드와 간선으로 이루어진 복잡한 작업을 하나의 단위로 묶어 관리하고 재사용성을 높이는 데 사용됩니다. 이를 통해 SNAP View의 복잡성을 줄이고, 작업 흐름을 더 직관적으로 설계할 수 있습니다.
Block의 속성을 적절히 설정하면 특정 이벤트가 발생했을 때 동작하는 특수한 Block으로 동작하게 됩니다. 아래는 다양한 Block 유형과 그 동작을 설명합니다.

Start Block
- SNAP 파일 실행 시 가장 먼저 동작하는 Block입니다.
- 주로 초기화 및 준비 작업을 수행하는 데 사용됩니다.
- 예 : 파라미터 설정, 장비 초기화(Initialize), 파일 로드 및 환경 설정.
- 주로 초기화 및 준비 작업을 수행하는 데 사용됩니다.
- SNAP 파일 실행 시 가장 먼저 동작하는 Block입니다.
Pause Block
- SNAP 파일이 일시 정지될 때 동작하는 Block입니다.
- 실행 흐름이 중단된 상태에서 특정 작업을 처리할 수 있습니다.
- 예 : 데이터 저장, 사용자 입력 대기.
- SNAP View 상단의 Run 버튼을 클릭하거나 단축키
F5
를 눌러 실행을 재개할 수 있습니다.
Resume Block
- 일시 정지된 작업을 재개할 때 우선적으로 동작하는 Block입니다.
Stop Block
- SNAP 실행이 종료되기 직전 동작하는 Block입니다.
- 실행 종료 시 처리해야 할 작업을 정의합니다.
- 예: 로그 저장, 결과 파일 생성, 장비 연결 해제(Terminate).
Error Pause Block, Error Continue Block
- 동작 과정에서 에러가 발생했을 때 실행되는 Block입니다.
- 두 Block의 차이:
Error Pause Block: 에러 발생 시 실행 중단 및 대기.
Error Continue Block: 에러 발생 후 설정된 처리 방식을 통해 계속 진행. - 참고: 에러 처리 방식과 관련된 자세한 내용은 Process와 Process Result 문서를 참고하세요.
- 두 Block의 차이:
- 동작 과정에서 에러가 발생했을 때 실행되는 Block입니다.
Timer Block
- 설정한 주기마다 반복 작업을 수행하는 Block입니다.
- 밀리초(ms)단위로 주기를 설정할 수 있습니다.
- 예 : 주기적인 장비 상태 점검.
이러한 Block을 적절히 활용하면 SNAP의 작업 흐름을 보다 직관적이고 체계적으로 설계할 수 있습니다.