コード例 #1
0
void iA3DColoredPolyObjectVis::setupBoundingBox()
{
	m_outlineFilter->SetInputData(getPolyData());
	m_outlineMapper->SetInputConnection(m_outlineFilter->GetOutputPort());
	m_outlineActor->GetProperty()->SetColor(0, 0, 0);
	m_outlineActor->PickableOff();
	m_outlineActor->SetMapper(m_outlineMapper);
}
コード例 #2
0
void iA3DColoredPolyObjectVis::setupOriginalIds()
{
	auto ids = vtkSmartPointer<vtkIdTypeArray>::New();
	ids->SetName("OriginalIds");
	vtkIdType numPoints = m_objectTable->GetNumberOfRows() * m_pointsPerObject;
	ids->SetNumberOfTuples(numPoints);
	for (vtkIdType id = 0; id < m_objectTable->GetNumberOfRows(); ++id)
		for (vtkIdType objectPoints = 0; objectPoints < m_pointsPerObject; ++objectPoints)
		ids->SetTuple1(id*m_pointsPerObject + objectPoints, id);
	getPolyData()->GetPointData()->AddArray(ids);
}
コード例 #3
0
ファイル: vizcore.cpp プロジェクト: ArkaJU/opencv
void cv::viz::computeNormals(const Mesh& mesh, OutputArray _normals)
{
    vtkSmartPointer<vtkPolyData> polydata = getPolyData(WMesh(mesh));
    vtkSmartPointer<vtkPolyData> with_normals = VtkUtils::ComputeNormals(polydata);

    vtkSmartPointer<vtkDataArray> generic_normals = with_normals->GetPointData()->GetNormals();
    if(generic_normals)
    {
        Mat normals(1, generic_normals->GetNumberOfTuples(), CV_64FC3);
        Vec3d *optr = normals.ptr<Vec3d>();

        for(int i = 0; i < generic_normals->GetNumberOfTuples(); ++i, ++optr)
            generic_normals->GetTuple(i, optr->val);

        normals.convertTo(_normals, mesh.cloud.type());
    }
    else
        _normals.release();
}
コード例 #4
0
double const * iA3DColoredPolyObjectVis::bounds()
{
	return getPolyData()->GetBounds();
}