55 lines
1.1 KiB
C++
55 lines
1.1 KiB
C++
/**
|
|
* PANDA 3D SOFTWARE
|
|
* Copyright (c) Carnegie Mellon University. All rights reserved.
|
|
*
|
|
* All use of this software is subject to the terms of the revised BSD
|
|
* license. You should have received a copy of this license along
|
|
* with this source code in a file named "LICENSE."
|
|
*
|
|
* @file eggMakeTube.h
|
|
* @author drose
|
|
* @date 2003-10-01
|
|
*/
|
|
|
|
#ifndef EGGMAKETUBE_H
|
|
#define EGGMAKETUBE_H
|
|
|
|
#include "pandatoolbase.h"
|
|
|
|
#include "eggMakeSomething.h"
|
|
|
|
class EggGroup;
|
|
class EggVertexPool;
|
|
class EggVertex;
|
|
|
|
/**
|
|
* A program to generate an egg file representing a tube model, similar in
|
|
* shape to a CollisionCapsule.
|
|
*/
|
|
class EggMakeTube : public EggMakeSomething {
|
|
public:
|
|
EggMakeTube();
|
|
|
|
void run();
|
|
|
|
private:
|
|
EggVertex *calc_sphere1_vertex(int ri, int si);
|
|
EggVertex *calc_sphere2_vertex(int ri, int si);
|
|
EggVertex *calc_tube_vertex(int ri, int si);
|
|
void add_polygon(EggVertex *a, EggVertex *b, EggVertex *c, EggVertex *d);
|
|
|
|
private:
|
|
double _point_a[3];
|
|
double _point_b[3];
|
|
bool _got_point_b;
|
|
double _radius;
|
|
int _num_slices;
|
|
int _num_crings;
|
|
int _num_trings;
|
|
|
|
double _length;
|
|
EggGroup *_group;
|
|
EggVertexPool *_vpool;
|
|
};
|
|
|
|
#endif
|