GOM 3D File Format. Version 1.1b GOM mbh, July 2010. GOM mbh Mittelweg 7-8 38106 Braunschweig E-Mail: info@gom.com http://www.gom.



Similar documents
Application Example: 3D Scanning

Caml Virtual Machine File & data formats Document version: 1.4

Application Example: Quality Control. Turbines: 3D Measurement of Water Turbines

The Windows Shortcut File Format as reverse-engineered by Jesse Hager Document Version 1.0

Optical Digitizing by ATOS for Press Parts and Tools

Operating Manual for UVEX-p (JAN Scientific, Inc. Aug 2014)

A. OPENING POINT CLOUDS. (Notepad++ Text editor) (Cloud Compare Point cloud and mesh editor) (MeshLab Point cloud and mesh editor)

First Bytes Programming Lab 2

Math 241 Lines and Planes (Solutions) x = 3 3t. z = 1 t. x = 5 + t. z = 7 + 3t

Xbox 360 File Specifications Reference

2 ASCII TABLE (DOS) 3 ASCII TABLE (Window)

Data Storage 3.1. Foundations of Computer Science Cengage Learning

Moven Studio realtime. streaming

Part 1 Foundations of object orientation

Lecture 2: Homogeneous Coordinates, Lines and Conics

Laboratory Assignments of OBJECT ORIENTED METHODOLOGY & PROGRAMMING (USING C++) [IT 553]

Programming languages C

Simple Image File Formats

Scan-Line Fill. Scan-Line Algorithm. Sort by scan line Fill each span vertex order generated by vertex list

Image Processing and Computer Graphics. Rendering Pipeline. Matthias Teschner. Computer Science Department University of Freiburg

How To Port A Program To Dynamic C (C) (C-Based) (Program) (For A Non Portable Program) (Un Portable) (Permanent) (Non Portable) C-Based (Programs) (Powerpoint)

Application Example: Rapid Manufacturing. Toolmaking: Milling on digitized data, Casted Blanks

w w w. g e o s o f t. c o m

Creating and Manipulating Spatial Weights

Application Example: Scanning down to the smallest Detail Optical Metrology supports the Building of full-scale Helicopter Mock-ups

3D Print Exporter Documentation 3D PRINT EXPORTER. Version Windows & Mac OSX

Steps for Entering an OnBase Purchase Requisition (PR)

New Features in TerraPhoto. Arttu Soininen Software developer Terrasolid Ltd

Application Example: Reverse Engineering

NaturalPoint Tracking Tools Users Manual : Getting Started 04/19/10 18:47:59

Illustration 1: Diagram of program function and data flow

Application Example: Quality Control

Reductions & NP-completeness as part of Foundations of Computer Science undergraduate course

Core Fittings C-Core and CD-Core Fittings

Organization of Records in Blocks

Step-by-Step guide for IMAGINE UAV workflow

The following is an overview of lessons included in the tutorial.

Active Directory Integration with Blue Coat

A Short Introduction to Computer Graphics

Application Example: Quality control of sheet metal components

Payroll Import. Version Main screen for Payroll Import.

How To Draw A Circle Of Radius 1 On A Computer (For A Computer)

Topographic Change Detection Using CloudCompare Version 1.0

Data Storage. Chapter 3. Objectives. 3-1 Data Types. Data Inside the Computer. After studying this chapter, students should be able to:

Embedded Programming in C/C++: Lesson-1: Programming Elements and Programming in C

All V7 registers support barcode printing, except the Sharp 410/420 1A ROM and that limitation is based upon the register.

Application Example: Automated Robot Inspection Cell for Quality Control on Sheet Metal Components. The future of metrology in vehicle construction

SuperOrca MSI Editor. User Manual version 1.0

HDI 4000 Ultrasound System

cloudutil: Cloud Utilization Visualizations

Application Example: Quality Control of Injection-Molded Parts

1-Step Appraisals Jewelry Appraisal Software


Exercise 1: Python Language Basics

Creating Electronic Portfolios using Microsoft Word and Excel

The NumPy array: a structure for efficient numerical computation

Vector Notation: AB represents the vector from point A to point B on a graph. The vector can be computed by B A.

DCAD Website Instruction Manual

Application Example: Quality Control

Adobe Illustrator CS5 Part 1: Introduction to Illustrator

ECMA rd Edition / June Universal 3D File Format

RTI Database Integration Service. Release Notes

Q&As: Microsoft Excel 2013: Chapter 2

Transformations Worksheet. How many units and in which direction were the x-coordinates of parallelogram ABCD moved? C. D.

Kaseya 2. User Guide. Version 1.1

Create and Manage Discussion Forums and Threads

User Manual Printer driver PRO 300 / ECO 200 / Express Plus / Pegasus State: April

6. Control Structures

7 Raster-to-Vector Conversion

WebEx Sharing Resources

ESC Mobile App Guide

Production date: To view map legend click here Legend. Site Details: GN18181 FIND , Client Ref: Report Ref: Grid Ref: MasterMap

JAVA.UTIL.SCANNER CLASS

Installing Java 5.0 and Eclipse on Mac OS X

Command Line Interface Specification Linux Mac

Importing Xerox LAN Fax Phonebook Data from Microsoft Outlook

Principles of Database Management Systems. Overview. Principles of Data Layout. Topic for today. "Executive Summary": here.

Visualization of 2D Domains

What is FRAGSTATS? Scale Considerations Computer Requirements

Create a New Profile Model in GM-SYS Profile Modelling

Monash University Clayton s School of Information Technology CSE3313 Computer Graphics Sample Exam Questions 2007

Flood Warning System Implementation Manual

City of Dallas. WASP MOBILE ASSET Professional Edition Version 6.3 STEP-BY-STEP GUIDE

Category: Standards Track August 1995

Understanding Raster Data

5 Arrays and Pointers

How to use the Microfilm Reader/Scanner

Assignment 4 CPSC 217 L02 Purpose. Important Note. Data visualization

Extracting, Storing And Viewing The Data From Dicom Files

Structures for Data Compression Responsible persons: Claudia Dolci, Dante Salvini, Michael Schrattner, Robert Weibel

Grid-In-Hand Mobile Grid Revised 1/27/15

Programming Languages CIS 443

Files Used in this Tutorial

TekBots TM Oregon State University. usb_cam User Guide. Version 1.0 By Adriaan Smit OSU EE Graduate Student

VESA BIOS Extension/Accelerator Functions (VBE/AF)

BAM Checkout Mobile Implementation Guide for ios

System Calls Related to File Manipulation

WFP Liberia Country Office

Event Log. User Manual. Version 2.0 Date 2009/09/24. ASC telecom AG - Seibelstr D Hösbach - Germany

Using WPF for Computer Graphics

Transcription:

GOM 3D File Format Version.b GOM mbh, July 200 GOM mbh Mittelweg 7-8 3806 Braunschweig E-Mail: info@gom.com Germany http://www.gom.com

Table of Contents Introduction...3. Hints for Interpreting the file structure...3 2 File structure...4 2. All views in one file...4 2.2 Every view in a seperate file...4 3 The Header...5 3. Global header...5 3.2 Local header...6 4 The File List...6 5 Views...7 5. Triangle mesh...8 5.2 Rastered point clouds...0 5.3 ISO point clouds...2 5.4 Unsorted point clouds...2 5.5 Sections or Scanlines...2 5.6 Colored triangle meshes...3 GOM 3d file format GOM mbh, July 200 2/4

Introduction The g3d file format can be used to store several types of 3D data in a file. It is used by the GOM Atos 3d scanner. The format supports the following data types: Triangle meshes (also called polygonizations) Rastered point clouds ISO point clouds Unordered point clouds Sections or scan lines Feature lines (GOM internal) Colored triangle meshes The current software (version as of 08.07-200) uses the triangle meshes only. The other data types will not be used anymore.. Hints for Interpreting the file structure The g3d files are built of several data blocks. For each data block, except of the first one, a pointer to its position in the file is stored in a previously read block. It is recommended that this pointer is used to access the block as the position is freely selectable in the file. The block order may be completely different from the order described in this document. The file pointer is an absolute pointer and defines an offset from the beginning of the file. For each block there is a size argument. When reading a block, its size should be compared to known sizes. All data stored in a block is valid up to the block size. If a block size is smaller than in this document, the block data can be used completely. Missing data should be interpreted as good as possible. If a block is larger, it is mainly from a newer program version. Then, the unknown data should be ignored. New file versions will add data to blocks only. Data blocks will never shrink or change their meaning. The file version should not be used to classify the contents of the file. Use the block sizes instead. Different data types can be stored in a g3d file. Unknown data should be skipped. The first element of each view header is a pointer to the next view header or zero for the last view. GOM 3d file format GOM mbh, July 200 3/4

2 File Structure This section describes the global file structure used to store the data. The data is organized in views. Every view contains a part of the complete data. It is possible to store all views in one file or to use a separate file for each view. 2. All Views in One File When all views are stored in one file, the file structure is as follows: Global header View header View data View 2 header View 2 data... View n header View n data 2.2 Every View in a Seperate File If each view is in one file there is a header file containing the view names and several files with one view each. Header file: Views: Global header File list Local header View header View data We advise you not to use every view in a separate file and not to use this option for creating new files. GOM 3d file format GOM mbh, July 200 4/4

3 The Header The header is the beginning of every loadable g3d file. The header position is always at the beginning of the file. 3. Global Header The global header is at the beginning of every g3d main file. 8 string "%GOM-3DH" Magic key 2 unsigned short 0x000: LSB/HSB 0x000: HSB/LSB Byte order 2 unsigned short 00 Version number 4 unsigned int 96 Header size 4 unsigned int 0 or Project flag 2 4 unsigned int 0 or Flag for all views in one file 3 4 unsigned int 0-... Number of views 4 unsigned int... Pointer to header of first view 4 64 string " " Comment Do not use to classify file version! 2 The project flag defines, whether the file belongs to a project (flag = ) or not. These files should not be loaded individually. 3 Flag = if all views are in one file, flag = 0 if the views are in separate files. 4 Or pointer to file list. Pointer is zero, if there are no views. GOM 3d file format GOM mbh, July 200 5/4

3.2 Local Header The local header is at the beginning of a separated view file. 8 string "%GOM-3DV" Magic key 2 unsigned short 0x000: LSB/HSB 0x000: HSB/LSB Byte order 2 unsigned short 00 Version number 4 unsigned int 24 Header size 4 unsigned int 0 or Project flag 4 unsigned int... Pointer to header of view The project flag defines, whether the file belongs to a project (flag = ) or not. These files should not be loaded individually. 4 The File List The file list is a string list containing the names of the files with the 3D data. The file names are separated by "\n". All file names must not contain a directory name. The files must be located in the same directory as the header file. GOM 3d file format GOM mbh, July 200 6/4

5 Views Every view contains a set of 3D data. The following view types are available: Type Description 0 Triangle mesh Rastered point cloud 2 ISO point cloud 3 Unsorted point cloud 4 Sections or scan lines 5 Feature line 6 Colored triangle mesh If an unknown view is recognized while reading a file, this view should be ignored. All views share a common header (the first 44 bytes). GOM 3d file format GOM mbh, July 200 7/4

5. Triangle Mesh A triangle mesh contains a set of 3D points and a set of triangles with point numbers. Header: 4 unsigned int... Pointer to next view 4 unsigned int 68 Header size 4 unsigned int... ID 2 4 unsigned int 0 Type 64 string " " Name 64 string " " Comment 4 unsigned int 0-... Number of points 4 unsigned int... Pointer to first point 3 4 unsigned int 28 Size of the point 4 unsigned int 0-... Number of triangles 4 unsigned int... Pointer to first triangle 4 4 unsigned int 2 Size of a triangle Zero, if it is the last view. 2 All IDs must be different. 3 Zero, if there are no points. All points are stored continuously. 4 Zero, if there are no triangles. All triangles are stored continuously. Point: 8 double... X-coordinate 8 double... Y-coordinate 8 double... Z-coordinate 4 float... Quality value Higher values mean better quality. GOM 3d file format GOM mbh, July 200 8/4

Triangle: 4 unsigned int... First point number 4 unsigned int... Second point number 4 unsigned int... Third point number The point numbers start with zero. The numbers are defined by the order of the points in the file. The normal vector of the triangle must be calculated by (p 2 -p )x(p 3 -p ). GOM 3d file format GOM mbh, July 200 9/4

5.2 Rastered Point Clouds A rastered point cloud contains 3D points ordered in a regular (u,v) grid. Header: 4 unsigned int... Pointer to next view 4 unsigned int 22 Header size 4 unsigned int... ID 2 4 unsigned int Type 64 string " " Name 64 string " " Comment 4 unsigned int 0-... Number of points 4 unsigned int... Pointer to first point 3 4 unsigned int 28 Size of the point 4 unsigned int -... u-scan-raster 4 unsigned int -... v-scan-raster 4 8 double... First orientation vector, X- coordinate 8 double... Y-coordinate 8 double... Z-coordinate 5 8 double... Second orientation vector, X- coordinate 8 double... Y-coordinate 8 double... Z-coordinate 5 Zero, if it is the last view. 2 All IDs must be different. 3 Zero, if there are no points. All points are stored continuously. 4 Step size of the raster, 0 if there is no raster. 5 The first orientation vector defines the view direction of the camera. The second orientation vector is for a second camera. If these values are unknown, a zero vector can be defined. GOM 3d file format GOM mbh, July 200 0/4

Point: 8 double... X-coordinate 8 double... Y-coordinate 8 double... Z-coordinate 4 unsigned int 0-... u-raster position 4 unsigned int 0-... v-raster-position 4 float... Quality value 2 With the raster a 2D matrix can be defined. The minimal distance of two raster points is defined in the header. Different points are defined by different raster positions. The raster positions of the points must increase in u- und v-direction. 2 Higher values mean better quality. GOM 3d file format GOM mbh, July 200 /4

5.3 ISO Point Clouds ISO point clouds are almost identical to rastered point clouds. The differences are: The view type is 2 Single scan lines are signed by different v-raster positions The points must be described by the rule "Z above XY" 5.4 Unsorted Point Clouds Unsorted point clouds are almost identical to rastered point clouds. The differences are: The view type is 3 The u- and v-raster step size is zero The u- and v-raster position of every point is zero 5.5 Sections or Scan Lines Sections or scan lines are almost identical to rastered point clouds. The differences are: The view type is 4 Single sections / scan lines are defined by different v-raster positions GOM 3d file format GOM mbh, July 200 2/4

5.6 Colored Triangle Meshes Colored triangle meshes are like triangle meshes with additional colors for each point. Header: 4 unsigned int... Pointer to next view 4 unsigned int 68 Header size 4 unsigned int... ID 2 4 unsigned int 6 Type 64 string " " Name 64 string " " Comment 4 unsigned int 0-... Number of points 4 unsigned int... Pointer to first point 3 4 unsigned int 32 Size of the point 4 unsigned int 0-... Number of triangles 4 unsigned int... Pointer to first triangle 4 4 unsigned int 2 Size of a triangle Zero, if it is the last view. 2 All IDs must be different. 3 Zero, if there are no points. All points are stored continuously. 4 Zero, if there are no triangles. All triangles are stored continuously. GOM 3d file format GOM mbh, July 200 3/4

Point: 8 double... X-coordinate 8 double... Y-coordinate 8 double... Z-coordinate 4 float... Quality value byte... Red byte... Green byte... Blue byte... Alpha (unused) Higher values mean better quality. Triangle: 4 unsigned int... First point number 4 unsigned int... Second point number 4 unsigned int... Third point number The point numbers start with zero. The numbers are defined by the order of the points in the file. The normal vector of the triangle must be calculated by (p 2 -p )x(p 3 -p ). GOM 3d file format GOM mbh, July 200 4/4