#plane2Cone.py
# by. zahir
from math import *

#目的となる円錐の頂点角の角度
coneAngle = 22

#左右のどちらが前に出るか 左 = -1、 右 = 1
front = 1

centerAngle = coneAngle * pi
doc = MQSystem.getDocument()
obj = doc.object[doc.currentObjectIndex]
numVertex = obj.numVertex
nV = obj.numVertex
vers = obj.vertex

distR = 1
distL = 1
if(front==1):
	distL = 1.5
if(front== -1):
	distR = 1.5

MQSystem.clearLog()
def trace( *args ):
  if len(args)==0:
    MQSystem.println("")
    return
  for arg in args:
    MQSystem.println(str(arg))

def transform( vertex ):
	pos = vertex.getPos()
	_x = pos.x
	_y = pos.y
	_z = pos.z;
	theta = atan2( _y, _x ) * 57.29578
	l = sqrt( _x * _x + _y * _y )
	r = l * ( centerAngle / 360 )
	rotAngle = ( 360 / centerAngle ) * ( theta - 90 )
	r += _z;
	if( rotAngle < 0 ):
		r += distL * rotAngle / 360 * front
	if( rotAngle > 0):
		r += distR * rotAngle / 360 * front	
	rotAngle += 270
	rotAngle *= 0.01745 # 0.01745 = PI / 180
	
	_x = cos( rotAngle ) * r;
	_z = sin( rotAngle ) * r;
	_y = cos( coneAngle * 0.01745 ) * l;
	
	pos.x = _x;
	pos.y = _y;
	pos.z = _z;
	#end

#実行
for i in range(0,nV):
	transform( vers[ i ] )