52 vector<Triangle> temp;
55 for (
int i = 0; i <
divide_; i++)
109 if (start.
z() >= end.
z())
140 for (
int i = 0; i <
divide_; i++)
147 point v2_(v2.getX(), v2.getY(), v2.getZ());
154 for (
int i = 0; i <
side_.size(); i++)
161 for (
int i = 0; i <
top_.size(); i++)
167 for (
int i = 0; i < temp.
vert_list_.size(); i++)
182 return point(x, y, z);
192 if (start.
z() >= end.
z())
215 normal =
GeoV3(0, 0, 1);
222 for (
int i = 0; i <
divide_; i++)
225 + u*(radii*cos(2 *
F_PI / divide_*(i + 1))) + v*(radii*sin(2 *
F_PI / divide_*(i + 1)));
229 + u*(radii*cos(2 *
F_PI / divide_*(i))) + v*(radii*sin(2 *
F_PI / divide_*(i)));
230 point v2_(v2.getX(), v2.getY(), v2.getZ());
237 for (
int i = 0; i <
side_.size(); i++)
242 for (
int i = 0; i <
top_.size(); i++)
252 for (
int i = 0; i <
divide_; i++)
255 + u*(radii*cos(2 *
F_PI / divide_*(i + 1))) + v*(radii*sin(2 *
F_PI / divide_*(i + 1)));
259 + u*(radii*cos(2 *
F_PI / divide_*(i))) + v*(radii*sin(2 *
F_PI / divide_*(i)));
260 point v2_(v2.getX(), v2.getY(), v2.getZ());
268 for (
int i = 0; i <
side_.size(); i++)
273 for (
int i = 0; i <
top_.size(); i++)
GLfloat GLfloat GLfloat alpha
double top_cylin_center_lenth_
static double angle(Vector3d vec1, Vector3d vec2)
vector< point > vert_list_
void RotateTri(Triangle temp)
void Rotation(double angle, point start, point end)
GLboolean GLboolean GLboolean GLboolean a
vector< Triangle > side_end_
GLint GLsizei GLsizei height
GLboolean GLboolean GLboolean b
GLdouble GLdouble GLdouble z
GLfloat GLfloat GLfloat v2
static double dot(Vector3d vec1, Vector3d vec2)
static Vector3d cross(Vector3d vec1, Vector3d vec2)
void Render(WireFrame *ptr_frame, double alpha)