package com.wistron.WiGallery;
import Utilities.CSStaticData;
public class ElementBase
{
protected float m_xrot = 0.0f;
protected float m_yrot = 0.0f;
protected float m_zrot = 0.0f;
protected float m_x_offset = 0.0f;
protected float m_y_offset = 0.0f;
protected float m_z_offset = 0.0f;
protected MEDIA_VIEW m_view_side = MEDIA_VIEW.LEFT_VIEW;
// 动画设置
public CSStaticData.ANIMATION_TYPE m_animation_type = CSStaticData.ANIMATION_TYPE.NONE;
protected float[] m_animation_step = new float[3]; // 动画移动步长
protected int m_animation_num = 0; // 动画帧数
protected float[] m_final_position = new float[3]; // 动画完成后的位置
protected float[] m_final_angle = new float[3]; // 动画完成后的角度
protected int m_animation_index = 0;
/////////////////////////////////////////////////
protected boolean m_is_choosed = false;
protected ELEM_STATUS m_status = ELEM_STATUS.NORMAL_STATUS;
// 获取Element的显示位置
public float[] getPosition()
{
float[] val = new float[3];
val[0] = m_x_offset;
val[1] = m_y_offset;
val[2] = m_z_offset;
return val;
}
public float[] getAngle()
{
float[] val = new float[3];
val[0] = m_xrot;
val[1] = m_yrot;
val[2] = m_zrot;
return val;
}
public void setStatus(ELEM_STATUS status)
{
m_status = status;
if (status == ELEM_STATUS.NORMAL_STATUS || status == ELEM_STATUS.DISABLE_STATUS)
{
setChoosed(false);
}
}
public ELEM_STATUS getStatus()
{
return m_status;
}
public void setChoosed(boolean isChoosed)
{
m_is_choosed = isChoosed;
}
public boolean isChoosed()
{
return m_is_choosed;
}
public void moveTo(float x, float y, float z)
{
m_x_offset = x;
m_y_offset = y;
m_z_offset = z;
}
public void setAngleTo(float xRot, float yRot, float zRot)
{
m_xrot = xRot;
m_yrot = yRot;
m_zrot = zRot;
}
public void setAngle(float xRot, float yRot, float zRot)
{
m_xrot += xRot;
m_yrot += yRot;
m_zrot += zRot;
}
public void move(float x, float y, float z)
{
m_x_offset += x;
m_y_offset += y;
m_z_offset += z;
}
public void startAnimation(CSStaticData.ANIMATION_TYPE type, int num, float[] step, float[] finalPositon, float[] finalAngle)
{
m_animation_type = type;
m_animation_num = num;
m_animation_index = 0;
for (int i = 0; i < 3; i++)
{
m_animation_step[i] = step[i];
m_final_position[i] = finalPositon[i];
m_final_angle[i] = finalAngle[i];
}
}
public CSStaticData.ANIMATION_TYPE getAnimationType()
{
return m_animation_type;
}
}