コード例 #1
0
ファイル: PolyBezierCurve.cpp プロジェクト: pt2277/VTS
PolyBezierCurve::PolyBezierCurve( const VectorX1i & degs, const VectorX2s & points )
: m_degs(degs)
, m_controlPoints(points)
, m_segments(degs.rows())
, m_iter(pointsBegin())
, m_currentSegment(0)
{}
コード例 #2
0
ファイル: PolyBezierCurve.cpp プロジェクト: pt2277/VTS
VectorX1s PolyBezierCurve::getSegmentCtrlPtsIndices( const int & segment )
{

//	std::cout << "m_segments" << m_segments << std::endl;
//	std::cout << "segment" << segment << std::endl;

	assert( (segment >= 0) && (segment < m_segments) );
	
	VectorX2sIterator pointsBeginIter = pointsBegin();
	int segCount = 0;
	
	// Advance the iterator of the control points by the degree of each precedented segment
	while (segCount < segment) {
		pointsBeginIter += m_degs[segCount];
		++segCount;
	}
	
	// Return indices of control points
	VectorX1s pointIndices;
	mathdef::resize(pointIndices, m_degs[segment] + 1);
	for (int i = 0; i <= m_degs[segment]; i++, pointsBeginIter++) {
		pointIndices[i] = pointsBeginIter.getCurrentRow();
	}
	
	return pointIndices;
	
}
コード例 #3
0
ファイル: PolyBezierCurve.cpp プロジェクト: pt2277/VTS
VectorX2sIterator& PolyBezierCurve::resetToFirstSegment()
{
	m_iter = pointsBegin();
	m_currentSegment = 0;
	
	return m_iter;
}
コード例 #4
0
ファイル: PolyBezierCurve.cpp プロジェクト: pt2277/VTS
PolyBezierCurve::PolyBezierCurve()
: m_degs()
, m_controlPoints()
, m_segments(0)
, m_iter(pointsBegin())
, m_currentSegment(0)
{}
コード例 #5
0
ファイル: Curve.cpp プロジェクト: diekev/blender
Interface0DIterator Curve::verticesBegin()
{
	return pointsBegin(0);
}