本文整理汇总了C++中PolyLine::Append方法的典型用法代码示例。如果您正苦于以下问题:C++ PolyLine::Append方法的具体用法?C++ PolyLine::Append怎么用?C++ PolyLine::Append使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类PolyLine
的用法示例。
在下文中一共展示了PolyLine::Append方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: BuildShape
void HelixObject::BuildShape(TimeValue t, PolyShape& ashape) {
// Set the object's interpolation parameters
ReadyInterpParams(t);
// Set the general interval to the one we just got
ivalid = interpValid;
ashape.NewShape();
// Start a PolyLine for our helix...
PolyLine *line = ashape.NewLine();
// Compute some helpful stuff...
int points = (int)(turns * (float)POINTS_PER_TURN);
if(points == 0)
points = 1;
float fPoints = (float)points;
numberOfPieces = 0;
for(int i = 0; i <= points; ++i) {
float pct = (float)i / fPoints;
float r = radius1 + deltaRadius * pct;
float hpct = pct;
if(bias > 0.0f)
hpct = 1.0f - (float)pow(1.0f - pct, power );
else
if(bias < 0.0f)
hpct = (float)pow(pct, power);
float z = height * hpct;
float angle = totalRadians * pct;
float x = r * (float)cos(angle);
float y = r * (float)sin(angle);
DWORD flags = POLYPT_SMOOTH;
if((i % 10) == 0 || i == points) {
flags |= POLYPT_KNOT; // Let it know the piece boundary
if(i > 0)
numberOfPieces++;
}
line->Append(PolyPt(Point3(x,y,z), flags));
}
perPiece = 1.0f / (float)numberOfPieces;
ashape.UpdateSels(); // Make sure it readies the selection set info
ashape.InvalidateGeomCache(FALSE);
lengthOfCurve = ashape.lines[0].CurveLength();
}