26 num += obj->NumDistances();
37 if (obj->Inside(p))
return true;
48 if (obj->Inside(p))
return i;
60 for(
int j=0;j<obj->NumDistances();j++)
62 if (
num==
idx)
return obj->Distance(
num-oldnum, ps);
77 for(
int j=0;j<obj->NumDistances();j++)
79 if (
num==
idx)
return obj->ColorValue(
num-oldnum, p);
99 return o.Distance(0,r.Index(val));
119 int s = array.NumDistances();
122 float d = array.Distance(i, ps);
140 return sqrt(ps.
x*ps.
x+ps.
y*ps.
y+ps.
z*ps.
z);
154 return split.first.Dist();
185 SeparateX(Separate *next,
float (*fptr)(
float,
float,
float,
void*),
void *
data) : next(next), fptr(fptr),
data(
data) { }
186 virtual float x_sep(Point p)
const {
return fptr(p.
x,p.
y,p.
z,
data); }
187 virtual float y_sep(Point p)
const {
return next->
y_sep(p); }
191 float (*fptr)(float,float,float,
void*);
198 SeparateY(Separate *next,
float (*fptr)(
float,
float,
float,
void*),
void *
data) : next(next), fptr(fptr),
data(
data) { }
199 virtual float x_sep(Point p)
const {
return next->
x_sep(p); }
200 virtual float y_sep(Point p)
const {
return fptr(p.
x,p.
y,p.
z,
data); }
204 float (*fptr)(float,float,float,
void*);
213 SeparateDist(Separate *next,
float (*fptr)(
float,
float,
float,
void*),
void *
data) : next(next), fptr(fptr),
data(
data) { }
214 virtual float x_sep(Point p)
const {
return next->
x_sep(p); }
215 virtual float y_sep(Point p)
const {
return next->
y_sep(p); }
216 virtual float dist_sep(Point p)
const {
return fptr(p.
x,p.
y,p.
z,
data); }
219 float (*fptr)(float,float,float,
void*);
227 struct Key {
int kx;
int ky;
228 friend bool operator<(
const Key &k1,
const Key &k2);
230 SeparateRender(Separate &s,
float dist,
float dist_accuracy,
231 float x_range_start,
float x_range_end,
float x_step,
232 float y_range_start,
float y_range_end,
float y_step,
233 float z_range_start,
float z_range_end,
float z_step,
234 float u_range_start,
float u_range_end,
float u_step,
235 float v_range_start,
float v_range_end,
float v_step
237 x_range_start(x_range_start), x_range_end(x_range_end), x_step(x_step),
238 y_range_start(y_range_start), y_range_end(y_range_end), y_step(y_step)
241 for(
float x=x_range_start;x<x_range_end;x+=x_step)
243 for(
float y=y_range_start;y<y_range_end;y+=y_step)
245 for(
float z=z_range_start;z<z_range_end;z+=z_step)
249 if (sz >= dist-dist_accuracy && sz <= dist+dist_accuracy)
252 float u = s.
x_sep(p);
253 float v = s.
y_sep(p);
255 int ssx = int((u-u_range_start)/u_step);
256 int ssy = int((v-v_range_start)/v_step);
268 int X_Count()
const {
return (x_range_end-x_range_start)/x_step; }
269 int Y_Count()
const {
return (y_range_end-y_range_start)/y_step; }
270 void Collect(CollectVisitor &vis) { }
274 return X_Count()*Y_Count();
280 virtual Point
FacePoint(
int face,
int point)
const
286 case 0: p=points[Face_to_key(face)];
break;
288 Key k = Face_to_key(face);
292 Key k = Face_to_key(face);
297 Key k = Face_to_key(face);
304 virtual Vector
PointNormal(
int face,
int point)
const
311 virtual float Attrib(
int face,
int point,
int id)
const {
return 0.0; }
312 virtual int AttribI(
int face,
int point,
int id)
const {
return 0; }
313 virtual unsigned int Color(
int face,
int point)
const {
return 0xffffffff; }
314 virtual Point2d
TexCoord(
int face,
int point)
const
316 Point2d p = { 0.0, 0.0 };
319 Key Face_to_key(
int face)
const
322 k.kx = face/X_Count();
323 k.ky = face-k.kx*X_Count();
331 float x_range_start;
float x_range_end;
float x_step;
332 float y_range_start;
float y_range_end;
float y_step;
336 mutable std::map<Key, Point> points;
Color find_color(const DistanceObject &o, float val, Ray &r, float raydist)
Definition DistanceObject.cc:13
Point find_pos(const DistanceObject &o, float val, Ray &r, float raydist)
Definition DistanceObject.cc:4
void split(std::vector< FontInterfaceImpl::Bezier2d > &vec, FontInterfaceImpl::Bezier2d orig, float t, bool emit_left, bool emit_right)
Definition FreeType2.cc:134
bool operator<(const Dep &a1, const Dep &a2)
Definition GameApi_dep_add_find.cc:2905
virtual Color ColorValue(int idx, Point p) const
Definition DistanceObject.hh:69
ArrayDistanceObject(DistanceObject *array, int size)
Definition DistanceObject.hh:18
virtual int NumDistances() const
Definition DistanceObject.hh:19
virtual bool Inside(Point p) const
Definition DistanceObject.hh:30
virtual int idx(Point p) const
Definition DistanceObject.hh:41
virtual float Distance(int idx, Point ps) const
Definition DistanceObject.hh:52
Definition VectorTools.hh:380
DistanceObjectFunction(const DistanceObject &o, float val, Ray &r)
Definition DistanceObject.hh:96
float Index(float val) const
Definition DistanceObject.hh:97
Definition DistanceObject.hh:6
virtual int NumDistances() const =0
virtual bool Inside(Point p) const =0
virtual float Distance(int idx, Point ps) const =0
virtual int Idx(Point p) const =0
virtual Color ColorValue(int idx, Point p) const =0
virtual Vector PointNormal(int face, int point) const =0
virtual Point FacePoint(int face, int point) const =0
virtual float Attrib(int face, int point, int id) const =0
virtual unsigned int Color(int face, int point) const =0
virtual int NumPoints(int face) const =0
virtual Point2d TexCoord(int face, int point) const =0
virtual int NumFaces() const =0
virtual int AttribI(int face, int point, int id) const =0
MinDistance(DistanceObject &array)
Definition DistanceObject.hh:114
virtual int NumDistances() const
Definition DistanceObject.hh:115
virtual float Distance(int idx, Point ps) const
Definition DistanceObject.hh:116
PlaneDistance(Point p, Vector dir)
Definition DistanceObject.hh:149
virtual int NumDistances() const
Definition DistanceObject.hh:150
virtual float Distance(int idx, Point ps) const
Definition DistanceObject.hh:151
Definition Effect.hh:10156
Definition DistanceObject.hh:175
virtual float y_sep(Point p) const
Definition DistanceObject.hh:178
virtual float dist_sep(Point p) const
Definition DistanceObject.hh:179
virtual float x_sep(Point p) const
Definition DistanceObject.hh:177
Definition DistanceObject.hh:166
virtual float x_sep(Point p) const =0
virtual ~Separate()
Definition DistanceObject.hh:168
virtual float y_sep(Point p) const =0
virtual float dist_sep(Point p) const =0
Definition Effect.hh:3156
void Collect(CollectVisitor &vis)
Definition Effect.hh:3159
void HeavyPrepare()
Definition Effect.hh:3160
SphereDistance(Point center)
Definition DistanceObject.hh:135
virtual int NumDistances() const
Definition DistanceObject.hh:136
virtual float Distance(int idx, Point ps) const
Definition DistanceObject.hh:137
Definition VectorTools.hh:125
static std::pair< Vector, Vector > SplitToComponents(Vector u, Vector u_x)
Definition VectorTools.hh:207
static Vector CrossProduct(const Vector &aVec, const Vector &aVec2)
Definition VectorTools.hh:193
d
Definition meshpage.php:3895
lazy data
Definition meshpage.php:1583
n< br > font size
Definition meshpage.php:3536
float x
Definition Parser.cc:60
float y
Definition Parser.cc:60
float z
Definition Parser.cc:60
num
Definition view.php:2821