23 int GetFace()
const {
return vertex.face; }
49 virtual std::string
Expr(std::string varname)
const=0;
58 virtual std::string
Expr(std::string varname)
const=0;
67 virtual std::string
Expr(std::string varname)
const=0;
76 virtual std::string
Expr(std::string varname)
const=0;
85 virtual std::string
Expr(std::string varname)
const=0;
94 virtual std::string
Expr(std::string varname)
const=0;
102 std::string
Context()
const {
return "attribute float "+name+
";\n"; }
104 std::string
Expr(std::string varname)
const
106 return varname +
"=" + name +
";\n";
120 PointAttribute(
FaceCollection *coll,
int id_x,
int id_y,
int id_z, std::string name) : x(coll,id_x,name+
"x"), y(coll,id_y, name+
"y"), z(coll, id_z, name+
"z"), name(name) { }
121 std::string
Context()
const {
return x.Context()+y.Context()+z.Context(); }
123 std::string
Expr(std::string varname)
const
125 std::string s1 = varname +
".x = " + name +
"x;\n";
126 std::string s2 = varname +
".y = " + name +
"y;\n";
127 std::string s3 = varname +
".z = " + name +
"z;\n";
146 Vertex(FaceCollection *coll) : coll(coll) { }
147 std::string Context()
const {
return ""; }
150 return coll->
FacePoint(GetFace(), GetPoint());
152 std::string Expr(std::string varname)
const
154 return varname +
"= gl_Vertex.xyz;";
156 virtual void CollectIds(std::vector<int> &vec)
const { }
158 FaceCollection *coll;
169 return "uniform float " + name +
";\n";
175 std::string
Expr(std::string varname)
const
177 return varname +
"=" + name +
";\n";
188 MixPoint(
Point3Shader &p1,
Point3Shader &p2, std::string uniform_name,
float &uniform_value) : p1(p1), p2(p2), uni(uniform_name, uniform_value), uniform_name(uniform_name) { }
192 return p1.Context() + p2.Context() + uni.Context();
198 Point pp1 = p1.Value();
201 Point pp2 = p2.Value();
202 return Vector(pp1)*(1.0-uni.Value()) +
Vector(pp2)*uni.Value();
204 std::string
Expr(std::string varname)
const
208 std::string e1 = p1.Expr(n1);
209 std::string e2 = p2.Expr(n2);
210 return "vec3 " + n1 +
";\nvec3 " + n2 +
";\n" + e1 + e2 + varname +
"= mix(" + n1 +
"," + n2 +
"," + uniform_name +
");\n";
221 std::string uniform_name;
Definition ShaderExpr.hh:54
virtual void CollectIds(std::vector< int > &vec) const =0
virtual Color Value() const =0
virtual std::string Expr(std::string varname) const =0
virtual std::string Context() const =0
Definition VectorTools.hh:380
Definition EffectI.hh:212
virtual Point FacePoint(int face, int point) const =0
Definition ShaderExpr.hh:99
std::string Context() const
Definition ShaderExpr.hh:102
std::string Expr(std::string varname) const
Definition ShaderExpr.hh:104
float Value() const
Definition ShaderExpr.hh:103
virtual void CollectIds(std::vector< int > &vec) const
Definition ShaderExpr.hh:108
FloatAttribute(FaceCollection *coll, int id, std::string name)
Definition ShaderExpr.hh:101
Definition ShaderExpr.hh:45
virtual std::string Expr(std::string varname) const =0
virtual float Value() const =0
virtual std::string Context() const =0
virtual void CollectIds(std::vector< int > &vec) const =0
std::string Expr(std::string varname) const
Definition ShaderExpr.hh:204
std::string Context() const
Definition ShaderExpr.hh:190
Point Value() const
Definition ShaderExpr.hh:194
virtual void CollectIds(std::vector< int > &vec) const
Definition ShaderExpr.hh:212
MixPoint(Point3Shader &p1, Point3Shader &p2, std::string uniform_name, float &uniform_value)
Definition ShaderExpr.hh:188
Definition ShaderExpr.hh:72
virtual Point2d Value() const =0
virtual std::string Expr(std::string varname) const =0
virtual std::string Context() const =0
virtual void CollectIds(std::vector< int > &vec) const =0
Definition ShaderExpr.hh:90
virtual std::string Expr(std::string varname) const =0
virtual std::string Context() const =0
virtual Point Value() const =0
virtual void CollectIds(std::vector< int > &vec) const =0
Point Value() const
Definition ShaderExpr.hh:122
std::string Context() const
Definition ShaderExpr.hh:121
PointAttribute(FaceCollection *coll, int id_x, int id_y, int id_z, std::string name)
Definition ShaderExpr.hh:120
virtual void CollectIds(std::vector< int > &vec) const
Definition ShaderExpr.hh:131
std::string Expr(std::string varname) const
Definition ShaderExpr.hh:123
Definition ShaderExpr.hh:16
ChooseVertex GetVertex() const
Definition ShaderExpr.hh:20
int GetPoint() const
Definition ShaderExpr.hh:24
int GetFace() const
Definition ShaderExpr.hh:23
std::string uniquename() const
Definition ShaderExpr.hh:27
void SetFragment(ChooseFragment f)
Definition ShaderExpr.hh:19
void SetVertex(ChooseVertex v)
Definition ShaderExpr.hh:18
ChooseFragment GetFragment() const
Definition ShaderExpr.hh:21
Definition ShaderExpr.hh:63
virtual Vector2d Value() const =0
virtual std::string Expr(std::string varname) const =0
virtual void CollectIds(std::vector< int > &vec) const =0
virtual std::string Context() const =0
Definition ShaderExpr.hh:81
virtual std::string Context() const =0
virtual std::string Expr(std::string varname) const =0
virtual Vector Value() const =0
virtual void CollectIds(std::vector< int > &vec) const =0
Definition VectorTools.hh:125
iVBORw0KGgoAAAANSUhEUgAAANcAAAB5CAMAAACdtUQZAAAA51BMVEX</div ></div >< div style="padding: 0px 0px; width: 1324px;">< div style="height: 400px; width: 1324px;"></div >< div itemscope itemtype="https: </div><div itemscope itemtype="https:</div >< div itemscope itemtype="https: </div></div><p><div style="padding:0px 0px;width:1324px;"><div></div><div itemscope itemtype="https:< ul >< li >< b > Application name
8AkrcAgqgAs9wqQ0ey2tkAo8gAuuQfeI4hPUH09fXHy8z4+fng4uNKXF/Lz9BzfoAcgpkQMTUAKjAbOT4Qr9AXhJ8Rl7ktMCwTosA...
Definition meshpage.php:1610
double f(const std::string &, double, bool) noexcept
Definition profile_cpp_calls_2.cpp:4
Definition ShaderExpr.hh:12
Definition ShaderExpr.hh:7
int point
Definition ShaderExpr.hh:9
int face
Definition ShaderExpr.hh:8
Definition VectorTools.hh:910
Definition VectorTools.hh:972
Definition GraphI.hh:2847