Avogadro  1.1.0
Public Member Functions | Protected Member Functions
Avogadro::Cylinder Class Reference

List of all members.

Public Member Functions

 Cylinder (int faces=0)
void setup (int faces)
void draw (const Eigen::Vector3d &end1, const Eigen::Vector3d &end2, double radius) const
void drawMulti (const Eigen::Vector3d &end1, const Eigen::Vector3d &end2, double radius, int order, double shift, const Eigen::Vector3d &planeNormalVector) const

Protected Member Functions

void initialize ()
void freeBuffers ()

Member Function Documentation

void Avogadro::Cylinder::draw ( const Eigen::Vector3d &  end1,
const Eigen::Vector3d &  end2,
double  radius 
) const

draws the cylinder at specified position, with specified radius.

Parameters:
end1the position of the first end of the cylinder. that is, the center of the first disc-shaped face.
end2the position of the second end of the cylinder. that is, the center of the second disc-shaped face.
radiusthe radius of the cylinder
void Avogadro::Cylinder::drawMulti ( const Eigen::Vector3d &  end1,
const Eigen::Vector3d &  end2,
double  radius,
int  order,
double  shift,
const Eigen::Vector3d &  planeNormalVector 
) const

draws the cylinder at specified position, with specified radius. the order and shift arguments allow to render multiple cylinders at once, which is useful in libavogadro. for multiple bonds between atoms. If you only want to render one cylinder, leave order and shift at their default values.

Parameters:
end1the position of the first end of the cylinder. that is, the center of the first disc-shaped face.
end2the position of the second end of the cylinder. that is, the center of the second disc-shaped face.
radiusthe radius of the cylinder
orderto render only one cylinder, leave this set to the default value, which is 1. If order>1, then order parallel cylinders are drawn around the axis (end1 - end2).
shiftthis is only meaningful of order>1, otherwise just let this set to the default value. When order>1, this is interpreted as the displacement of the axis of the drawn cylinders from the axis (end1 - end2).
planeNormalVectorthe unit normal vector of the plane in which we will try to fit the cylinders. This is useful to draw double bonds in a molecule in such a way that they avoid looking like single bonds. To achieve that, just pass the molecule's fitting plane's unit normal vector here.
void Avogadro::Cylinder::setup ( int  faces)

initializes the cylinder with given number of faces. If the cylinder was already initialized, any pre-allocated buffers are freed and then re-allocated


The documentation for this class was generated from the following files: