1 #ifndef _PERLINELINES_H
2 #define _PERLINELINES_H
6 #include <osg/LineWidth>
9 using namespace vrecko;
11 namespace APDYNAMICART
16 typedef std::vector<osg::ref_ptr<osg::Sphere> >
Spheres;
25 int load(XERCES_CPP_NAMESPACE_QUALIFIER
DOMNode* PoANode) {
return 0; }
27 void save(XERCES_CPP_NAMESPACE_QUALIFIER DOMDocument* Document, XERCES_CPP_NAMESPACE_QUALIFIER
DOMNode* poaNode) {}
29 virtual void createMenuStructure( osg::ref_ptr<vreckoUtils::MenuBase> parentMenu )
const;
31 void GUIItemClicked(
const char* itemID);
33 void GUISliderChanged(
const char* sliderID,
float sliderPos);
35 void pointed(
bool pointed);
43 void setLineParameters(
int count);
45 void setLinesParameters();
47 double perlinNoise(osg::Vec3 temp);
49 double smooth(osg::Vec3 temp,
double sx,
double sy,
double sz);
51 double interpolate(
double a,
double b,
double c);
53 void interpolateVec3(osg::Vec3Array* controlPoints, osg::Vec3Array* interpolatedPoints,
int p_steps);
55 osg::Vec3 interpolatePoint(
double t, osg::Vec3 point1, osg::Vec3 point2, osg::Vec3 point0 = osg::Vec3(0.0, 0.0, 0.0), osg::Vec3 point3 = osg::Vec3(0.0, 0.0, 0.0));
57 double random(
double min,
double max) {
return min + (max-min)*(
double)rand()/(double)RAND_MAX;}
60 void setMagnet(osg::Vec3 coordinates,
float magnetSize){_magnetUsed =
true; _magnetCoords = coordinates; this->_magnetSize = magnetSize;};
64 void updateMagnetPosition(osg::Vec3 vektor,
float size) ;
69 void setBounding(
float boundingSize,
bool first) {_boundingUsed =
true; this->_boundingSize = boundingSize;
if (first) _boundingCreated =
true;
else _boundingCreated =
false;};
71 void setBoundingVisible() {
if(_boundingVisible) _boundingVisible =
false;
else _boundingVisible =
true;};
76 void recalculateColorInterpolation();
78 void setColor(osg::Vec3 color){_red = color.x(); _green = color.y(); _blue = color.z();};
81 void setSpeed(
int speed) {changedSpeed = 101-speed;};
85 void setInterpolationCount(
int interpolationCount) {changedInterpolation = 5 + interpolationCount; _somethingChaned =
true;};
91 void setColor(
float r,
float g,
float b) {_red = r; _green = g; _blue = b; _somethingChaned =
true;}
94 void setController(osg::Vec3 vektor);
102 void pause(){
if (_paused) _paused =
false;
else _paused =
true;};
108 typedef osg::ref_ptr<osg::Vec3Array> Vec3Ptr;
122 u_int _speed,
_trigger, _interpolationCount, _length;
124 bool _somethingChaned, _request, _pointed, _paused, _magnetUsed, _magnetON, _controllerUsed, _boundingUsed, _boundingVisible;
127 float _red, _green, _blue, _changedRed, _changedGreen, _changedBlue;