This file is indexed.

/usr/include/SurgSim/Graphics/OsgTrackballZoomManipulator.h is in libopensurgsim-dev 0.7.0-5.

This file is owned by root:root, with mode 0o644.

The actual contents of the file can be viewed below.

  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
// This file is a part of the OpenSurgSim project.
// Copyright 2013, SimQuest Solutions Inc.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
//     http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.

#ifndef SURGSIM_GRAPHICS_OSGTRACKBALLZOOMMANIPULATOR_H
#define SURGSIM_GRAPHICS_OSGTRACKBALLZOOMMANIPULATOR_H

#include <osgGA/TrackballManipulator>



namespace SurgSim
{
namespace Graphics
{

/// Trackball manipulator that uses the mouse wheel to control zoom amount.
/// The output matrices are view matrices and do not include the zoom.
/// To apply the zoom, get the value from getZoomFactor() and multiply
/// it by some base FOV to calculate the FOV for the current zoom level.
class OsgTrackballZoomManipulator : public osgGA::TrackballManipulator
{
public:
	/// Initializes the zoom parameters to default values
	OsgTrackballZoomManipulator();

	/// Sets the minimum zoom factor (zoomed out)
	/// \param factor Minimum zoom factor
	virtual void setMinZoomFactor(double factor);

	/// Gets the minimum zoom factor
	/// \return Minimum zoom factor
	double getMinZoomFactor() const;

	/// Sets the maximum zoom factor (zoomed out)
	/// \param factor Maximum zoom factor
	virtual void setMaxZoomFactor(double factor);

	/// Gets the maximum zoom factor
	/// \return Maximum zoom factor
	double getMaxZoomFactor() const;

	/// Sets the minimum amount to change the zoom factor in one step
	/// \param amount Minimum zoom amount
	virtual void setMinZoomAmount(double amount);

	/// Gets the minimum amount to change the zoom factor in one step
	/// \return Minimum zoom factor
	double getMinZoomAmount() const;//

	/// Sets the maximum amount to change the zoom factor in one step
	/// \param amount Maximum zoom amount
	virtual void setMaxZoomAmount(double amount);

	/// Gets the maximum amount to change the zoom factor in one step
	/// \return Maximum zoom factor
	double getMaxZoomAmount() const;

	/// Sets the current zoom factor
	/// \param factor Zoom factor
	virtual void setZoomFactor(double factor);

	/// Gets the current zoom factor
	/// \return Zoom factor
	double getZoomFactor() const;

	/// Sets the scale applied to the zoom factor before it is applied to the FOV
	/// \param factor Scale applied to the zoom factor
	virtual void setZoomFactorScale(double factor);

	/// Gets the current zoom factor
	/// \return Scale applied to the zoom factor
	double getZoomFactorScale() const;

	/// Zoom by a percent of the difference between the current zoom amount and minimum zoom factor
	/// \param zoomPercent Percent to zoom by: positive values zoom out, negative values zoom in
	virtual void zoom(double zoomPercent);

	/// Removes roll of the camera, so that the top of the view is towards the Y direction.
	virtual void makeUpright();

protected:

	/// Minimum zoom factor value (zoomed in)
	double m_minZoomFactor;
	/// Maximum zoom factor value (zoomed out)
	double m_maxZoomFactor;

	/// Minimum amount to change the zoom factor in one step
	/// This minimum prevents zooming by infinitely smaller amounts.
	double m_minZoomAmount;

	/// Maximum amount to change the zoom factor in one step
	double m_maxZoomAmount;

	/// Current zoom factor
	/// Larger values are zoomed out, smaller values are zoomed in.
	double m_zoomFactor;

	/// Scaling factor applied to the zoom factor before it is applied to the FOV
	double m_zoomFactorScale;

	/// Handle keyboard CTRL-U events to make the view upright
	/// \param eventAdapter Event adapter
	/// \param actionAdapter Action adapter
	/// \return true if the event was handled, false otherwise
	virtual bool handle(const osgGA::GUIEventAdapter& eventAdapter, osgGA::GUIActionAdapter& actionAdapter); //NOLINT

	/// Handle mouse wheel scrolling to zoom in or out
	/// \param eventAdapter Event adapter
	/// \param actionAdapter Action adapter
	/// \return true if the mouse wheel was handled, false otherwise
	virtual bool handleMouseWheel(const osgGA::GUIEventAdapter& eventAdapter,
								  osgGA::GUIActionAdapter& actionAdapter); //NOLINT

	void updateCamera(osg::Camera& camera) override;

};

}; // namespace Graphics
}; // namespace SurgSim


#endif