//-----------------------------------------------------------------------------
// This source file is part of eily.acuario.3d
//
// For the latest info, see http://integra-s.com/
//
// Module:
// File: Locations.proto
// Created: 27.06.2013
// Updated:
// Author: Golodov Aleksey mailto:golodov@integra-s.com
//
// Copyright (c) 2013 Integra-S JSC
//-----------------------------------------------------------------------------
syntax = "proto2";

package eily_acuario_3d.protobuf;

option optimize_for = SPEED;

enum PointType
{
    PT_CORNER = 0;
    PT_ROUND = 1;
}

enum PivotPlane
{
	XY = 0;
	YZ = 1;
	XZ = 2;
}

message LoftObject
{
    message Position
    {
        required double x = 1;
        required double y = 2;
        required double z = 3;
    }  

    message ControlPoint
    {
        required Position      position         = 1; 
        optional PointType     type             = 2; // corner type
		optional float         radius           = 3; // corner radius
	}
    
    message Shape
    {
        required float         radius           = 1; // shape radius
        required int32         num_points       = 2; // shape pointns number
		repeated Position      points           = 3; // points of shape
		optional PivotPlane    plane            = 4; // 
    }
	
    
    repeated ControlPoint		control_point   = 1;
    required Shape				shape           = 2;
	optional int32				version			= 3;
	optional Position			initialGeoPosition = 4;
}