diff --git a/Code/Common/otbDataNode.txx b/Code/Common/otbDataNode.txx index 405690df2fa87f7b4bf968cdc9f19cb902000bf6..debc61d297f648cba10059c44c271925f1d2889c 100644 --- a/Code/Common/otbDataNode.txx +++ b/Code/Common/otbDataNode.txx @@ -319,7 +319,7 @@ template <class TPrecision, unsigned int VDimension, class TValuePrecision> is >> value; return value; } - return ""; + return 0; } /* diff --git a/Code/Visualization/otbVectorDataGlComponent.h b/Code/Visualization/otbVectorDataGlComponent.h index 634cfcb52ef03c009192f54dd423d287397205dd..369851d88c528f531a4a47104c77e785cb620e1a 100644 --- a/Code/Visualization/otbVectorDataGlComponent.h +++ b/Code/Visualization/otbVectorDataGlComponent.h @@ -72,6 +72,7 @@ public: typedef typename VectorDataType::Pointer VectorDataPointerType; typedef typename VectorDataType::DataNodeType DataNodeType; typedef typename DataNodeType::Pointer DataNodePointerType; + typedef typename DataNodeType::ConstPointer DataNodeConstPointerType; typedef typename VectorDataType::DataTreeType DataTreeType; typedef typename DataNodeType::LineType LineType; typedef typename DataNodeType::PolygonType PolygonType; @@ -129,11 +130,11 @@ protected: } /// Render a point - virtual void RenderPoint(const PointType & p, const RegionType & extent, const AffineTransformType * transform); + virtual void RenderPoint(DataNodePointerType dataNode, const RegionType & extent, const AffineTransformType * transform); /// Render a polyline - virtual void RenderLine(const LineType * l, const RegionType & extent, const AffineTransformType * transform); + virtual void RenderLine(DataNodePointerType dataNode, const RegionType & extent, const AffineTransformType * transform); // Render a complex polygon (with holes) - virtual void RenderPolygon(const PolygonType * extRing, const PolygonListType * intRings, const RegionType & extent, const AffineTransformType * transform); + virtual void RenderPolygon(DataNodePointerType dataNode, const RegionType & extent, const AffineTransformType * transform); // Recursive rendering method virtual void Render(InternalTreeNodeType * node, const RegionType & extent, const AffineTransformType * space2ScreenTransform); diff --git a/Code/Visualization/otbVectorDataGlComponent.txx b/Code/Visualization/otbVectorDataGlComponent.txx index bbbd4a1390ee74390cc017a501caaab277254220..e67b6f6b7c11f57de082acf79c58695d70273186 100644 --- a/Code/Visualization/otbVectorDataGlComponent.txx +++ b/Code/Visualization/otbVectorDataGlComponent.txx @@ -106,10 +106,10 @@ VectorDataGlComponent<TVectorData> template <class TVectorData> void VectorDataGlComponent<TVectorData> -::RenderPoint(const PointType & p, const RegionType & extent, const AffineTransformType * transform) +::RenderPoint(DataNodePointerType dataNode, const RegionType & extent, const AffineTransformType * transform) { // Take into account pixel spacing and origin - PointType spacePoint = p; + PointType spacePoint = dataNode->GetPoint(); spacePoint[0]*= m_Spacing[0]; spacePoint[1]*= m_Spacing[1]; spacePoint[0]+= m_Origin[0]; @@ -130,8 +130,9 @@ VectorDataGlComponent<TVectorData> template <class TVectorData> void VectorDataGlComponent<TVectorData> -::RenderLine(const LineType * l, const RegionType & extent, const AffineTransformType * transform) +::RenderLine(DataNodePointerType dataNode, const RegionType & extent, const AffineTransformType * transform) { + const LineType * l = dataNode->GetLine(); // Iterate on the line typename LineType::VertexListType::ConstIterator vIt = l->GetVertexList()->Begin(); @@ -159,8 +160,10 @@ VectorDataGlComponent<TVectorData> template <class TVectorData> void VectorDataGlComponent<TVectorData> -::RenderPolygon(const PolygonType * extRing, const PolygonListType * intRings, const RegionType & extent, const AffineTransformType * transform) +::RenderPolygon(DataNodePointerType dataNode, const RegionType & extent, const AffineTransformType * transform) { + const PolygonType * extRing = dataNode->GetPolygonExteriorRing(); + const PolygonListType * intRings = dataNode->GetPolygonInteriorRings(); typedef std::vector<GLdouble * > VertexVectorType; // A buffer to hold vertex until they are rendered @@ -264,19 +267,19 @@ VectorDataGlComponent<TVectorData> { case FEATURE_POINT: { - this->RenderPoint(node->Get()->GetPoint(),extent,space2ScreenTransform); +// this->RenderPoint(node->Get()->GetPoint(),extent,space2ScreenTransform); + this->RenderPoint(node->Get(), extent, space2ScreenTransform); break; } case FEATURE_LINE: { - this->RenderLine(node->Get()->GetLine(),extent,space2ScreenTransform); + this->RenderLine(node->Get(), extent, space2ScreenTransform); break; } case FEATURE_POLYGON: { - this->RenderPolygon(node->Get()->GetPolygonExteriorRing(),node->Get()->GetPolygonInteriorRings(), - extent,space2ScreenTransform); + this->RenderPolygon(node->Get(), extent, space2ScreenTransform); break; } default: @@ -292,7 +295,7 @@ VectorDataGlComponent<TVectorData> // Render each child for(typename ChildrenListType::iterator it = children.begin(); it!=children.end();++it) { - this->Render(*it,extent,space2ScreenTransform); + this->Render(*it, extent, space2ScreenTransform); } }