//-----------------------------------------------------------------------------
// 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;



message LoftObjectFloat
{
	enum PointType
	{
		PT_CORNER = 0;
		PT_ROUND = 1;
	}

	enum PivotPlane
	{
		XY = 0;
		YZ = 1;
		XZ = 2;
	}

    message Position
    {
        required float x = 1;
        required float y = 2;
        required float 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;
}