Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'intern/cycles/render/mesh.h')
-rw-r--r--intern/cycles/render/mesh.h259
1 files changed, 0 insertions, 259 deletions
diff --git a/intern/cycles/render/mesh.h b/intern/cycles/render/mesh.h
deleted file mode 100644
index 8258c18ddd1..00000000000
--- a/intern/cycles/render/mesh.h
+++ /dev/null
@@ -1,259 +0,0 @@
-/*
- * Copyright 2011-2013 Blender Foundation
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef __MESH_H__
-#define __MESH_H__
-
-#include "graph/node.h"
-
-#include "bvh/bvh_params.h"
-#include "render/attribute.h"
-#include "render/geometry.h"
-#include "render/shader.h"
-
-#include "util/util_array.h"
-#include "util/util_boundbox.h"
-#include "util/util_list.h"
-#include "util/util_map.h"
-#include "util/util_param.h"
-#include "util/util_set.h"
-#include "util/util_types.h"
-#include "util/util_vector.h"
-
-CCL_NAMESPACE_BEGIN
-
-class Attribute;
-class BVH;
-class Device;
-class DeviceScene;
-class Mesh;
-class Progress;
-class RenderStats;
-class Scene;
-class SceneParams;
-class AttributeRequest;
-struct SubdParams;
-class DiagSplit;
-struct PackedPatchTable;
-
-/* Mesh */
-
-class Mesh : public Geometry {
- protected:
- Mesh(const NodeType *node_type_, Type geom_type_);
-
- public:
- NODE_DECLARE
-
- /* Mesh Triangle */
- struct Triangle {
- int v[3];
-
- void bounds_grow(const float3 *verts, BoundBox &bounds) const;
-
- void motion_verts(const float3 *verts,
- const float3 *vert_steps,
- size_t num_verts,
- size_t num_steps,
- float time,
- float3 r_verts[3]) const;
-
- void verts_for_step(const float3 *verts,
- const float3 *vert_steps,
- size_t num_verts,
- size_t num_steps,
- size_t step,
- float3 r_verts[3]) const;
-
- float3 compute_normal(const float3 *verts) const;
-
- bool valid(const float3 *verts) const;
- };
-
- Triangle get_triangle(size_t i) const
- {
- Triangle tri = {{triangles[i * 3 + 0], triangles[i * 3 + 1], triangles[i * 3 + 2]}};
- return tri;
- }
-
- size_t num_triangles() const
- {
- return triangles.size() / 3;
- }
-
- /* Mesh SubdFace */
- struct SubdFace {
- int start_corner;
- int num_corners;
- int shader;
- bool smooth;
- int ptex_offset;
-
- bool is_quad()
- {
- return num_corners == 4;
- }
- float3 normal(const Mesh *mesh) const;
- int num_ptex_faces() const
- {
- return num_corners == 4 ? 1 : num_corners;
- }
- };
-
- struct SubdEdgeCrease {
- int v[2];
- float crease;
- };
-
- SubdEdgeCrease get_subd_crease(size_t i) const
- {
- SubdEdgeCrease s;
- s.v[0] = subd_creases_edge[i * 2];
- s.v[1] = subd_creases_edge[i * 2 + 1];
- s.crease = subd_creases_weight[i];
- return s;
- }
-
- bool need_tesselation();
-
- enum SubdivisionType {
- SUBDIVISION_NONE,
- SUBDIVISION_LINEAR,
- SUBDIVISION_CATMULL_CLARK,
- };
-
- NODE_SOCKET_API(SubdivisionType, subdivision_type)
-
- /* Mesh Data */
- NODE_SOCKET_API_ARRAY(array<int>, triangles)
- NODE_SOCKET_API_ARRAY(array<float3>, verts)
- NODE_SOCKET_API_ARRAY(array<int>, shader)
- NODE_SOCKET_API_ARRAY(array<bool>, smooth)
-
- /* used for storing patch info for subd triangles, only allocated if there are patches */
- NODE_SOCKET_API_ARRAY(array<int>, triangle_patch) /* must be < 0 for non subd triangles */
- NODE_SOCKET_API_ARRAY(array<float2>, vert_patch_uv)
-
- /* SubdFaces */
- NODE_SOCKET_API_ARRAY(array<int>, subd_start_corner)
- NODE_SOCKET_API_ARRAY(array<int>, subd_num_corners)
- NODE_SOCKET_API_ARRAY(array<int>, subd_shader)
- NODE_SOCKET_API_ARRAY(array<bool>, subd_smooth)
- NODE_SOCKET_API_ARRAY(array<int>, subd_ptex_offset)
-
- NODE_SOCKET_API_ARRAY(array<int>, subd_face_corners)
- NODE_SOCKET_API(int, num_ngons)
-
- NODE_SOCKET_API_ARRAY(array<int>, subd_creases_edge)
- NODE_SOCKET_API_ARRAY(array<float>, subd_creases_weight)
-
- /* Subdivisions parameters */
- NODE_SOCKET_API(float, subd_dicing_rate)
- NODE_SOCKET_API(int, subd_max_level)
- NODE_SOCKET_API(Transform, subd_objecttoworld)
-
- AttributeSet subd_attributes;
-
- private:
- PackedPatchTable *patch_table;
- /* BVH */
- size_t vert_offset;
-
- size_t patch_offset;
- size_t patch_table_offset;
- size_t face_offset;
- size_t corner_offset;
-
- size_t num_subd_verts;
- size_t num_subd_faces;
-
- unordered_map<int, int> vert_to_stitching_key_map; /* real vert index -> stitching index */
- unordered_multimap<int, int>
- vert_stitching_map; /* stitching index -> multiple real vert indices */
-
- friend class BVH2;
- friend class BVHBuild;
- friend class BVHSpatialSplit;
- friend class DiagSplit;
- friend class EdgeDice;
- friend class GeometryManager;
- friend class ObjectManager;
-
- SubdParams *subd_params = nullptr;
-
- public:
- /* Functions */
- Mesh();
- ~Mesh();
-
- void resize_mesh(int numverts, int numfaces);
- void reserve_mesh(int numverts, int numfaces);
- void resize_subd_faces(int numfaces, int num_ngons, int numcorners);
- void reserve_subd_faces(int numfaces, int num_ngons, int numcorners);
- void reserve_subd_creases(size_t num_creases);
- void clear_non_sockets();
- void clear(bool preserve_shaders = false) override;
- void add_vertex(float3 P);
- void add_vertex_slow(float3 P);
- void add_triangle(int v0, int v1, int v2, int shader, bool smooth);
- void add_subd_face(int *corners, int num_corners, int shader_, bool smooth_);
- void add_crease(int v0, int v1, float weight);
-
- void copy_center_to_motion_step(const int motion_step);
-
- void compute_bounds() override;
- void apply_transform(const Transform &tfm, const bool apply_to_motion) override;
- void add_face_normals();
- void add_vertex_normals();
- void add_undisplaced();
-
- void get_uv_tiles(ustring map, unordered_set<int> &tiles) override;
-
- void pack_shaders(Scene *scene, uint *shader);
- void pack_normals(float4 *vnormal);
- void pack_verts(float4 *tri_verts, uint4 *tri_vindex, uint *tri_patch, float2 *tri_patch_uv);
- void pack_patches(uint *patch_data);
-
- PrimitiveType primitive_type() const override;
-
- void tessellate(DiagSplit *split);
-
- SubdFace get_subd_face(size_t index) const;
-
- SubdParams *get_subd_params();
-
- size_t get_num_subd_faces() const
- {
- return num_subd_faces;
- }
-
- void set_num_subd_faces(size_t num_subd_faces_)
- {
- num_subd_faces = num_subd_faces_;
- }
-
- size_t get_num_subd_verts()
- {
- return num_subd_verts;
- }
-
- protected:
- void clear(bool preserve_shaders, bool preserve_voxel_data);
-};
-
-CCL_NAMESPACE_END
-
-#endif /* __MESH_H__ */