void IntersectVisitor::IntersectState::addLineSegment(osg::LineSegment* seg) { // create a new segment transformed to local coordintes. LineSegment* ns = new LineSegment; if (_model_inverse.valid()) { if (_view_inverse.valid()) { osg::Matrix matrix = (*(_view_inverse)) * (*(_model_inverse)); ns->mult(*seg,matrix); } else { ns->mult(*seg,*(_model_inverse)); } } else if (_view_inverse.valid()) { ns->mult(*seg,*(_view_inverse)); } else { *ns = *seg; } _segList.push_back(LineSegmentPair(seg,ns)); }