38 virtual int NumberOfLevels()
const=0;
39 virtual const Array<int, T> *TreeChilds(
const Array<int, int> &path)
const=0;
45 virtual float Time(
float time)
const = 0;
47class EmptyTimeChange :
public TimeChange
50 virtual float Time(
float time)
const {
return time; }
56 const BoxableFaceCollection *faces;
58 mutable ShaderParameters *params;
59 TimeChange *timechange;
60 friend std::ostream &
operator<<(std::ostream &o,
const TreeNode &tn);
62TreeNode matrix_treenode(
Matrix m);
65struct TreeNodeInternal
68 BoxableFaceCollection *faces;
70 ShaderParameters *params;
71 Matrix current_level_matrix;
72 friend std::ostream &
operator<<(std::ostream &o,
const TreeNodeInternal &tn);
73 friend bool operator==(
const TreeNodeInternal &n1,
const TreeNodeInternal &n2);
78 virtual void Modify(
float time)=0;
81class TreeNodeCollection :
public Array<int, TreeNode>,
public ModifyTree
87class EventNodes :
public TreeNodeCollection
91class MatrixFacesNodes :
public TreeNodeCollection
94 MatrixFacesNodes(BoxCollection &coll, BoxableFaceCollection &faces) : coll(coll), faces(faces) { }
95 int Size()
const {
return coll.Size(); }
96 TreeNode Index(
int i)
const
98 TreeNode n = faces_treenode(coll.Index(i), &faces);
101 void Modify(
float time)
106 BoxableFaceCollection &faces;
109class MatrixNodes :
public TreeNodeCollection
112 MatrixNodes(BoxCollection &coll) : coll(coll) { }
113 int Size()
const {
return coll.
Size(); }
114 TreeNode Index(
int i)
const
116 TreeNode n = matrix_treenode(coll.Index(i));
119 void Modify(
float time)
125class TimedMatrixNodes :
public TreeNodeCollection
128 TimedMatrixNodes(TimedMatrixPaths &paths) : paths(paths) { }
129 int Size()
const {
return paths.
Size(); }
130 TreeNode Index(
int i)
const
132 TreeNode n = matrix_treenode(paths.Index(t, i));
135 void Modify(
float time)
142 TimedMatrixPaths &paths;
145class EmptyTreeNodeCollection :
public TreeNodeCollection
148 int Size()
const {
return 0; }
149 TreeNode Index(
int a)
const { TreeNode n; n.faces = 0;
return n; }
150 void Modify(
float time) { }
153class MatrixTreeNodeCollection :
public TreeNodeCollection
156 MatrixTreeNodeCollection(TreeNodeCollection &coll) : coll(coll) { }
157 int Size()
const {
return coll.Size(); }
158 TreeNode Index(
int i)
const
160 TreeNode n = matrix_treenode(coll.Index(i).matrix);
163 void Modify(
float time)
168 TreeNodeCollection &coll;
171class FacesTreeNodeCollection :
public TreeNodeCollection
174 FacesTreeNodeCollection(TreeNodeCollection &coll) : coll(coll) { }
175 int Size()
const {
return coll.Size(); }
176 TreeNode Index(
int i)
const
181 void Modify(
float time)
186 TreeNodeCollection &coll;
189class SingletonTreeNodeCollection :
public TreeNodeCollection
192 SingletonTreeNodeCollection(TreeNode n) : n(n) { }
193 void Modify(
float time) { }
194 int Size()
const {
return 1; }
195 TreeNode Index(
int a)
const
204class RingTreeNodes :
public TreeNodeCollection
209 pointvector(pvarray),
210 ring(pointvector, 100.0, 50),
211 ring1(pointvector, 150.0,50),
212 ring2(pointvector, 200.0,50),
213 ring3(pointvector, 250.0,50)
216 int Size()
const {
return 4; }
217 TreeNode Index(
int i)
const
222 case 0: n = faces_treenode(m,&
ring);
break;
223 case 1: n = faces_treenode(m1,&ring1);
break;
224 case 2: n = faces_treenode(m2,&ring2);
break;
225 case 3: n = faces_treenode(m3,&ring3);
break;
226 default: std::cout <<
"RingTreeNode: ERROR! " << i << std::endl;
break;
230 void Modify(
float time)
242 VectorArray<std::pair<Point,Vector> > pvarray;
243 PointVectorCollectionConvert pointvector;
248 static std::pair<Point,Vector>
array[];
254 virtual int NumberOfLevels()
const=0;
255 virtual const TreeNodeCollection *TreeChilds(
const Array<int, int> &path)
const=0;
258class ArrayObjectTreeStatic :
public ObjectTree
261 ArrayObjectTreeStatic(TreeNodeCollection &coll) : coll(coll) { }
262 int NumberOfLevels()
const {
return 1; }
263 const TreeNodeCollection *TreeChilds(
const Array<int, int> &path)
const
272 TreeNodeCollection &coll;
273 EmptyTreeNodeCollection
empty;
276class ArrayObjectTreeDynamic :
public ObjectTree
279 ArrayObjectTreeDynamic(TreeNodeCollection &coll) :
matrix(coll), faces(coll), singleton(0) { }
280 int NumberOfLevels()
const {
return 2; }
281 const TreeNodeCollection *TreeChilds(
const Array<int, int> &path)
const
291 int index = path.
Index(0);
292 TreeNode n = faces.Index(index);
293 singleton =
new SingletonTreeNodeCollection(n);
299 ~ArrayObjectTreeDynamic() {
delete singleton; }
302 EmptyTreeNodeCollection
empty;
303 MatrixTreeNodeCollection
matrix;
304 FacesTreeNodeCollection faces;
305 mutable SingletonTreeNodeCollection *singleton;
309class ObjectTreeForest :
public Array<int, ObjectTree*>
316class ForestToTree :
public ObjectTree
320 ForestToTree(ObjectTreeForest &forest, TreeNodeCollection &nodes) : forest(forest), nodes(nodes) { }
321 virtual int NumberOfLevels()
const
323 int size = forest.Size();
325 for(
int i=0;i<
size;i++)
327 count = std::max(count, forest.Index(i)->NumberOfLevels());
331 virtual const TreeNodeCollection *TreeChilds(
const Array<int, int> &path)
const
338 int index = path.
Index(0);
339 ObjectTree *
tree = forest.Index(index);
340 SubArray<int,int> path2(path, 1, path.
Size()-1);
341 return tree->TreeChilds(path2);
344 ObjectTreeForest &forest;
345 TreeNodeCollection &nodes;
348class AppendArray :
public Array<int,int>
351 AppendArray(
const Array<int,int> &arr,
int i) : arr(arr), i(i) { }
352 int Size()
const {
return arr.Size()+1; }
353 int Index(
int ii)
const
356 return arr.Index(ii-1);
359 const Array<int,int> &arr;
363class ObjectSubTree :
public ObjectTree
366 ObjectSubTree(ObjectTree &
tree,
int index) :
tree(
tree), index(index) { }
367 int NumberOfLevels()
const {
return tree.NumberOfLevels()-1; }
368 const TreeNodeCollection *TreeChilds(
const Array<int, int> &path)
const
370 AppendArray arr(path, index);
371 return tree.TreeChilds(arr);
381 virtual int SubTreeSize(VectorArray<int> &path)
const=0;
384class TreeSizeImpl :
public TreeSize
388 int SubTreeSize(VectorArray<int> &path)
const
390 const TreeNodeCollection *coll =
tree.TreeChilds(path);
392 int num = coll->Size();
395 for(
int i=0;i<
num;i++)
398 count += SubTreeSize(path);
410 virtual int NumObjects()
const=0;
411 virtual int StartRange(
int obj)
const=0;
412 virtual int EndRange(
int obj)
const=0;
413 virtual Matrix Transform(
int obj)
const =0;
416class RangeFaceCollectionArray :
public Array<int, T>
419 RangeFaceCollectionArray(ObjectRanges &ranges, Array<int,T> &arr,
int obj) : ranges(ranges), arr(arr), obj(obj) { }
420 int Size()
const {
return ranges.EndRange(obj)-ranges.StartRange(obj); }
423 int startindex = ranges.StartRange(obj);
424 return arr.Index(startindex+i);
427 ObjectRanges &ranges;
431class SelectFaceCollection :
public Array<int,std::pair<const FaceCollection*, bool> >
434 SelectFaceCollection(Array<int, TreeNodeInternal> &arr) : arr(arr) { }
435 int Size()
const {
return arr.Size(); }
436 std::pair<const FaceCollection *, bool>
Index(
int i)
const
438 TreeNodeInternal n = arr.Index(i);
439 return std::make_pair(n.faces, n.quads);
442 Array<int, TreeNodeInternal> &arr;
445class ApplyMatrix :
public Array<int, TreeNodeInternal>
448 ApplyMatrix(Array<int,TreeNodeInternal> &arr) : arr(arr), elem(0) { }
449 int Size()
const {
return arr.Size(); }
450 TreeNodeInternal
Index(
int i)
const
453 TreeNodeInternal n = arr.Index(i);
457 elem =
new MatrixElem(*n.faces, n.current_level_matrix);
460 elem->SetMatrix(n.current_level_matrix);
461 elem->SetNext(n.faces);
467 ~ApplyMatrix() {
delete elem; }
469 Array<int,TreeNodeInternal> &arr;
470 mutable MatrixElem *elem;
473class QuadTriChooser :
public Array<int, FaceCollectionTri*>
476 QuadTriChooser(Array<
int, std::pair<const FaceCollection*,bool> > &arr) : arr(arr), coll(0) { }
477 int Size()
const {
return arr.Size(); }
478 FaceCollectionTri *
Index(
int i)
const
481 std::pair<const FaceCollection*, bool> p = arr.Index(i);
484 coll =
new QuadsToTris(*p.first);
488 coll =
new TrisToTris(*p.first);
492 ~QuadTriChooser() {
delete coll; }
494 Array<int, std::pair<const FaceCollection*, bool> > &arr;
495 mutable FaceCollectionTri *coll;
498class CompressFaceCollectionArrays :
public Array<int, FaceCollectionTri*>
501 CompressFaceCollectionArrays(ObjectRanges &ranges, Array<int, TreeNodeInternal> &arr) : ranges(ranges), arr(arr), range_arr(0), apply_matrix(0),
select(0), chooser(0), oa(0)
505 return ranges.NumObjects();
507 FaceCollectionTri *
Index(
int i)
const
516 range_arr =
new RangeFaceCollectionArray<TreeNodeInternal>(ranges, arr, i);
517 apply_matrix =
new ApplyMatrix(*range_arr);
518 select =
new SelectFaceCollection(*apply_matrix);
519 chooser =
new QuadTriChooser(*
select);
522 oa =
new ObjectArray2(*chooser);
525 ~CompressFaceCollectionArrays()
535 ObjectRanges &ranges;
536 Array<int, TreeNodeInternal> &arr;
537 mutable RangeFaceCollectionArray<TreeNodeInternal> *range_arr;
538 mutable ApplyMatrix *apply_matrix;
539 mutable SelectFaceCollection *
select;
540 mutable QuadTriChooser *chooser;
543 mutable ObjectArray2 *oa;
545class VBOArrays :
public Element<const FaceCollectionVBO*>
548 VBOArrays(Array<int, FaceCollectionTri*> &arr) : oa(arr), vbo(oa) { }
549 const FaceCollectionVBO *
Elem()
const
559class MemoizeRanges :
public ObjectRanges
562 MemoizeRanges(ObjectRanges &ranges_) :
count(ranges_.NumObjects()), ranges(ranges_), start_range(
count), start_range_flag(
count), end_range(
count), end_range_flag(
count), transform(
count), transform_flag(
count)
564 for(
int i=0;i<
count;i++)
566 start_range_flag[i] = 0;
567 end_range_flag[i] = 0;
568 transform_flag[i] = 0;
571 virtual int NumObjects()
const
575 virtual int StartRange(
int obj)
const
577 if (start_range_flag[obj]==0)
579 start_range_flag[obj]=1;
580 start_range[obj]=ranges.StartRange(obj);
582 return start_range[obj];
584 virtual int EndRange(
int obj)
const
586 if (end_range_flag[obj]==0)
588 end_range_flag[obj]=1;
589 end_range[obj]=ranges.EndRange(obj);
591 return end_range[obj];
594 virtual Matrix Transform(
int obj)
const
596 if (transform_flag[obj]==0)
598 transform_flag[obj]=1;
599 transform[obj]=ranges.Transform(obj);
601 return transform[obj];
607 ObjectRanges &ranges;
608 mutable std::vector<int> start_range;
609 mutable std::vector<char> start_range_flag;
610 mutable std::vector<int> end_range;
611 mutable std::vector<char> end_range_flag;
612 mutable std::vector<Matrix> transform;
613 mutable std::vector<char> transform_flag;
617class SharedArray :
public Array<int, TreeNodeInternal>,
public ObjectRanges
620 SharedArray(Array<int, TreeNodeInternal> &arr, ObjectRanges &ranges) : arr(arr), ranges(ranges), enabled_func(this, &SharedArray::Enabled), mapping_range_i(this, &SharedArray::MappingRangeI) { }
629 bool b = InsideEnabledRange(i);
634 TreeNodeInternal
Index(
int i)
const
636 return arr.Index(MappingArrayI(i));
639 int NumObjects()
const
641 int c = ranges.NumObjects();
645 bool b = Enabled(i)==-1;
651 int StartRange(
int obj)
const
653 int next = Enabled(obj);
656 return MappingArray(ranges.StartRange(MappingRange(obj)));
660 return MappingArray(ranges.StartRange(MappingRange(next)));
663 int EndRange(
int obj)
const
665 int next = Enabled(obj);
668 return MappingArray(ranges.EndRange(MappingRange(obj)));
672 return MappingArray(ranges.EndRange(MappingRange(next)));
675 Matrix Transform(
int obj)
const
681 int MappingArray(
int obj)
const
684 int num = arr.Size();
685 for(
int i=0;i<
num;i++)
687 if (i==obj)
return count;
688 bool b = InsideEnabledRange(i);
698 int MappingArrayI(
int obj)
const
701 int num = arr.Size();
702 for(
int i=0;i<
num;i++)
704 bool b = InsideEnabledRange(i);
707 if (count==obj)
return i;
715 bool InsideEnabledRange(
int num)
const
717 int size = ranges.NumObjects();
718 for(
int i=0;i<
size;i++)
720 if (InsideRange(
num,i))
735 bool InsideRange(
int num,
int obj)
const
737 int start = ranges.StartRange(obj);
738 int end = ranges.EndRange(obj);
743 int MappingRange(
int obj)
const
746 int num = ranges.NumObjects();
747 for(
int i=0;i<
num;i++)
749 bool b = Enabled(i)==-1;
752 if (count==obj)
return i;
760 int MappingRangeI(
int obj)
const
763 int num = ranges.NumObjects();
764 for(
int i=0;i<
num;i++)
766 if (i==obj)
return count;
767 bool b = Enabled(i)==-1;
782 int Enabled(
int obj)
const
784 for(
int i=0;i<obj;i++)
792 bool Equal(
int obj1,
int obj2)
const
795 int start1 = ranges.StartRange(obj1);
796 int end1 = ranges.EndRange(obj1);
797 int start2 = ranges.StartRange(obj2);
798 int end2 = ranges.EndRange(obj2);
799 if (end1-start1 != end2-start2)
return false;
800 for(
int i=0;i<end1-start1;i++)
802 TreeNodeInternal n1 = arr.Index(start1+i);
803 TreeNodeInternal n2 = arr.Index(start2+i);
804 if (n1 == n2)
continue;
810 Array<int, TreeNodeInternal> &arr;
811 ObjectRanges &ranges;
813 ForwardFunction<SharedArray, int, int> enabled_func;
814 ForwardFunction<SharedArray, int, int> mapping_range_i;
817class FlattenTree :
public Array<int, TreeNodeInternal>,
public ObjectRanges
823 VectorArray<int> vec;
824 return size.SubTreeSize(vec);
826 int NumObjects()
const
829 VectorArray<int> vec;
830 const TreeNodeCollection *coll =
tree.TreeChilds(vec);
831 if (coll->Size() == 0)
return 0;
833 int num = coll->Size();
834 for(
int i=0;i<
num;i++)
836 ObjectSubTree subtree(
tree, i);
837 FlattenTree flat(subtree);
838 count += flat.NumObjects();
842 Matrix Transform(
int obj)
const
846 VectorArray<int> vec;
847 const TreeNodeCollection *coll =
tree.TreeChilds(vec);
848 int num = coll->Size();
850 for(
int i=0;i<
num;i++)
852 int oldcount =
count;
853 ObjectSubTree subtree(
tree, i);
854 FlattenTree flat(subtree);
855 count += flat.NumObjects();
858 return flat.Transform(obj-oldcount) * coll->Index(i).matrix;
861 std::cout <<
"Flatten::Transform ERROR! " << std::endl;
864 int StartRange(
int obj)
const
866 if (obj==0)
return 0;
869 VectorArray<int> vec;
870 const TreeNodeCollection *coll =
tree.TreeChilds(vec);
871 int num = coll->Size();
874 for(
int i=0;i<
num;i++)
876 int oldcount =
count;
877 int oldcount2 = count2;
878 ObjectSubTree subtree(
tree, i);
879 FlattenTree flat(subtree);
880 count += flat.NumObjects();
883 count2 +=
size.SubTreeSize(vec);
888 int val =
num + oldcount2 + flat.StartRange(obj-oldcount);
892 std::cout <<
"Flatten::Startrange ERROR! " << std::endl;
895 int EndRange(
int obj)
const
897 VectorArray<int> vec;
898 const TreeNodeCollection *coll =
tree.TreeChilds(vec);
899 if (obj==0)
return coll->Size();
902 int num = coll->Size();
905 for(
int i=0;i<
num;i++)
907 int oldcount =
count;
908 int oldcount2 = count2;
909 ObjectSubTree subtree(
tree, i);
910 FlattenTree flat(subtree);
911 count += flat.NumObjects();
914 count2 +=
size.SubTreeSize(vec);
919 int val =
num + oldcount2 + flat.EndRange(obj-oldcount);
923 std::cout <<
"Flatten::Endrange ERROR! " << std::endl;
926 TreeNodeInternal Index(
int i)
const
928 VectorArray<int> vec;
929 const TreeNodeCollection *coll =
tree.TreeChilds(vec);
930 if (i < coll->Size())
932 TreeNode n = coll->Index(i);
934 nn.matrix = n.matrix;
937 nn.params = n.params;
938 nn.current_level_matrix = n.matrix;
941 int num = coll->Size();
944 for(
int ii=0;ii<
num;ii++)
946 int oldcount =
count;
952 ObjectSubTree subtree(
tree, ii);
953 FlattenTree subtreeflat(subtree);
954 TreeNodeInternal n = subtreeflat.Index(i-oldcount);
955 n.matrix = coll->Index(ii).matrix * n.matrix;
959 std::cout <<
"ERROR: FlattenTree: i=" << i+
num << std::endl;
960 TreeNodeInternal n = { };
966 TreeSizeImpl sizeimpl;
972 TreeObjectData(ObjectRanges &ranges, Function<int,int> &enabled, Function<int,int> &mapping_range_i) : ranges(ranges), enabled(enabled), mapping_range_i(mapping_range_i) { }
973 int Size()
const {
return ranges.NumObjects(); }
974 ObjectData
Index(
int i)
const
977 d.
matrix = ranges.Transform(i);
978 int en = enabled.Index(i);
979 if (en == -1) en = i;
980 d.object = mapping_range_i.Index(en);
985 ObjectRanges &ranges;
986 Function<int,int> &enabled;
987 Function<int,int> &mapping_range_i;
989class TreeStateInternal;
995 friend void PrepareTree(ObjectTree &
tree, TreeState &treestate,
VBOUpdate u);
996 friend void RenderTree(ObjectTree &
tree,
float time, TreeState &treestate,
VBOUpdate u);
998 TreeStateInternal *priv;
1007 RenderTreeCmds(ObjectTree &
tree,
float time) :
tree(
tree), time(time) { }
1013 TreeState treestate;
1016class PositionTree :
public ObjectTree
1019 PositionTree(ObjectTreeForest &forest, TimedMatrixPaths &positions) : nodes(positions),
tree(forest, nodes) { }
1020 int NumberOfLevels()
const {
return tree.NumberOfLevels(); }
1021 const TreeNodeCollection *TreeChilds(
const Array<int,int> &path)
const
1023 return tree.TreeChilds(path);
1026 TimedMatrixNodes nodes;
1030class CircleTree :
public ObjectTree
1033 CircleTree(ObjectTree &object_tree) : circle(400.0), sample(circle, 5), treenode(sample), forest_array(&object_tree, treenode.Size()), forest(forest_array),
tree(forest, treenode) { }
1034 int NumberOfLevels()
const {
return tree.NumberOfLevels(); }
1035 const TreeNodeCollection *TreeChilds(
const Array<int,int> &path)
const
1037 return tree.TreeChilds(path);
1040 CircleMatrixCurve circle;
1041 SampleMatrixCurve sample;
1042 MatrixNodes treenode;
1043 DuplicateArray<int, ObjectTree*> forest_array;
1044 ObjectTreeForestConvert forest;
1051 RingTreeEffect(Render *r);
1053 bool Frame(
float time);
1055 RingTreeNodes nodes;
1056 ArrayObjectTreeDynamic
tree;
1060 SingletonArray<ObjectTree*> forestarray;
1061 ObjectTreeForestConvert forest;
1062 CircleMatrixPath cpath;
1068 ManyCubesEffect(Render *r);
1070 bool Frame(
float time);
1074 RandomPointsInBox
box;
1075 PointsToBoxCollection
matrix;
1076 MatrixFacesNodes nodes;
1077 ArrayObjectTreeStatic
tree;
1086template<
class Node,
class Link>
1090 TTree(Node n) : n(n) { }
1091 TTree(
typename std::vector<TTree<Node,Link> *> &children,
1093 std::vector<Link> links)
1094 : children(children), n(n), links(links) { }
1096 int NumNodes()
const {
return children.size(); }
1097 Link &GetLink(
int i)
const {
return links[i]; }
1098 Node &GetNode()
const {
return n; }
1099 TTree<Node,Link> *GetChildren(
int i)
const { }
1102 int s = children.size();
1103 for(
int i=0;i<s;i++)
delete children[i];
1106 std::vector<TTree*> children;
1108 std::vector<Link> links;
1116 virtual void *Value()
const=0;
1117 virtual std::string
Type()
const=0;
1120class TTValue :
public TValue
1123 TTValue(T t) : t(t) { }
1124 void *Value()
const {
return &t; }
1125 std::string
Type()
const {
return typeid(T).
name(); }
1133 virtual void *ret_val()
const=0;
1134 virtual std::string ret_type()
const=0;
1135 virtual int num_params()
const=0;
1136 virtual void set_param(
int i,
void *val)
const=0;
1137 virtual std::string param_type(
int i)
const=0;
1139 virtual TValue *create_return_value()=0;
1142struct TFunctionArray
1145 std::vector<TFunction*> vec;
1148template<
class T,
class R>
1149class TTFunction :
public TFunction
1152 TTFunction(Function<T,R> &
f) :
f(
f) { }
1153 virtual void *ret_val()
const {
return ret_value; }
1154 virtual std::string ret_type()
const {
return typeid(R).
name(); }
1155 virtual int num_params()
const {
return 1; }
1156 virtual void set_param(
int i,
void *val)
const
1163 virtual std::string param_type(
int i)
const {
return typeid(T).
name(); }
1168 ret_value = (
void*)&r;
1170 virtual TValue *create_return_value() {
1171 return new TTValue<R>(r);
1180class DynamicTree :
public TTree<TFunctionArray, TValue*>
P tree(EveryApi &ev)
Definition test.cpp:301
Type
Definition Database.hh:9
VBOUpdate
Definition Effect.hh:10676
@ UpdateVertexNormalIndex
Definition Effect.hh:10684
void Execute(FrameAnim &f, Low_SDL_Surface *screen)
Definition Main.cc:1603
void ring(Matrix m, const PointVectorCollection &points, float x, int steps, FaceStore &s)
Definition Functions.cc:73
void matrix(BoxableFaceCollection &coll, Matrix m, FaceStore &s)
Definition Functions.cc:56
void cube(Matrix m, FaceStore &s)
Definition Functions.cc:10
long double select(long double n, int k)
Definition Math2.cc:413
std::ostream & operator<<(std::ostream &, Catch_global_namespace_dummy)
virtual I Size() const =0
virtual T Elem() const =0
virtual bool Frame(float time)=0
virtual void Init()
Definition Effect.hh:113
virtual B Index(A a) const =0
Definition VectorTools.hh:279
static Matrix XRotation(float rot)
Definition VectorTools.cc:498
static Matrix ZRotation(float rot)
Definition VectorTools.cc:537
static Matrix Identity()
Definition VectorTools.cc:487
Definition Effect.hh:5623
Definition Effect.hh:10773
virtual int Size() const =0
void push_back(T t)
Definition Effect.hh:1131
T pop_back()
Definition Effect.hh:1132
d
Definition meshpage.php:3895
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
n< br > font size
Definition meshpage.php:3536
size_t count(const T &t_target, const typename T::key_type &t_key)
Definition bootstrap_stl.hpp:104
void array(const std::string &type, Module &m)
Definition bootstrap.hpp:23
double f(const std::string &, double, bool) noexcept
Definition profile_cpp_calls_2.cpp:4
bool operator==(const short_alloc< T, N, A1 > &x, const short_alloc< U, M, A2 > &y) noexcept
Definition short_alloc.hpp:145
Matrix matrix
Definition Effect.hh:5616
W empty()
Definition ui.cc:634
num
Definition view.php:2821