66 virtual void write(std::ostream &out,
int indent_level)
const;
73#if defined(WIN32_VC) || defined(WIN64_VC)
74 typedef const PT(
EggNode) *pointer;
75 typedef const PT(
EggNode) *const_pointer;
77 typedef Children::const_pointer pointer;
78 typedef Children::const_pointer const_pointer;
80 typedef Children::const_reference reference;
81 typedef Children::const_reference const_reference;
82 typedef Children::const_iterator iterator;
83 typedef Children::const_iterator const_iterator;
84 typedef Children::const_reverse_iterator reverse_iterator;
85 typedef Children::const_reverse_iterator const_reverse_iterator;
86 typedef Children::size_type size_type;
87 typedef Children::difference_type difference_type;
89 iterator begin()
const;
91 reverse_iterator rbegin()
const;
92 reverse_iterator rend()
const;
94 iterator insert(iterator position, PT(
EggNode) x);
95 iterator erase(iterator position);
96 iterator erase(iterator first, iterator last);
97 void replace(iterator position, PT(
EggNode) x);
101 size_type size()
const;
111 EXTENSION(PyObject *get_children()
const);
112 MAKE_PROPERTY(children, get_children);
118 EggNode *find_child(
const std::string &name)
const;
120 bool has_absolute_pathnames()
const;
121 void resolve_filenames(
const DSearchPath &searchpath);
122 void force_filenames(
const Filename &directory);
123 void reverse_vertex_ordering();
125 void recompute_vertex_normals(
double threshold, CoordinateSystem cs = CS_default);
126 void recompute_polygon_normals(CoordinateSystem cs = CS_default);
127 void strip_normals();
129 bool recompute_tangent_binormal(
const GlobPattern &uv_name);
130 bool recompute_tangent_binormal(
const vector_string &names);
131 bool recompute_tangent_binormal_auto();
133 enum TriangulateFlags {
138 T_flat_shaded = 0x010,
141 int triangulate_polygons(
int flags);
142 void mesh_triangles(
int flags);
143 void make_point_primitives();
145 int rename_nodes(vector_string strip_prefix,
bool recurse);
147 int remove_unused_vertices(
bool recurse);
148 int remove_invalid_primitives(
bool recurse);
149 void clear_connected_shading();
150 void get_connected_shading();
151 void unify_attributes(
bool use_connected_shading,
bool allow_per_primitive,
153 void apply_last_attribute(
bool recurse);
154 void apply_first_attribute(
bool recurse);
155 void post_apply_flat_attribute(
bool recurse);
156 virtual bool has_primitives()
const;
157 virtual bool joint_has_primitives()
const;
158 virtual bool has_normals()
const;
162 unsigned int max_vertices,
166 virtual void update_under(
int depth_offset);
168 virtual void r_transform(
const LMatrix4d &mat,
const LMatrix4d &inv,
169 CoordinateSystem to_cs);
170 virtual void r_transform_vertices(
const LMatrix4d &mat);
171 virtual void r_mark_coordsys(CoordinateSystem cs);
172 virtual void r_flatten_transforms();
176 CoordinateSystem find_coordsys_entry();
179 bool r_load_externals(
const DSearchPath &searchpath,
180 CoordinateSystem coordsys,
184 INLINE
static bool is_right(
const LVector2d &v1,
const LVector2d &v2);
188 const_iterator _gnc_iterator;
193 void prepare_add_child(
EggNode *node);
194 void prepare_remove_child(
EggNode *node);
197 class NVertexReference {
207 double threshold, CoordinateSystem cs);
208 void do_compute_vertex_normals(
const NVertexGroup &group);
211 class TBNVertexReference {
218 class TBNVertexValue {
220 INLINE
bool operator < (
const TBNVertexValue &other)
const;
223 std::string _uv_name;
230 void r_collect_tangent_binormal(
const GlobPattern &uv_name,
232 void do_compute_tangent_binormal(
const TBNVertexValue &value,
239 static void init_type() {
240 EggNode::init_type();
242 EggNode::get_class_type());
245 return get_class_type();
247 virtual TypeHandle force_init_type() {init_type();
return get_class_type();}
This is a collection of textures by TRef name.
void register_type(TypeHandle &type_handle, const std::string &name)
This inline function is just a convenient way to call TypeRegistry::register_type(),...