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:
authorYuki Hashimoto <hzuika>2022-03-23 19:46:20 +0300
committerBrecht Van Lommel <brecht@blender.org>2022-03-23 22:06:12 +0300
commit31bfa17a1f2b45401f265573c0a77a7366a9ed90 (patch)
treee194313dca3d24bb0c884675671d639896a079f6 /source/blender/freestyle
parente7b1be52e00749c574355ec219888548a07cd1c9 (diff)
Cleanup: delete unused ViewMapIO files in Freestyle
ViewMapIO.h is only included in Controller.cpp init_options(). However, g_models_path and g_flags set here are never used elsewhere. Therefore, ViewMapIO files can be deleted without affecting anything. Differential Revision: https://developer.blender.org/D14423
Diffstat (limited to 'source/blender/freestyle')
-rw-r--r--source/blender/freestyle/CMakeLists.txt2
-rw-r--r--source/blender/freestyle/intern/application/Controller.cpp4
-rw-r--r--source/blender/freestyle/intern/view_map/ViewMapIO.cpp1294
-rw-r--r--source/blender/freestyle/intern/view_map/ViewMapIO.h89
4 files changed, 0 insertions, 1389 deletions
diff --git a/source/blender/freestyle/CMakeLists.txt b/source/blender/freestyle/CMakeLists.txt
index 2a5a2d0d957..c2fad9fef3a 100644
--- a/source/blender/freestyle/CMakeLists.txt
+++ b/source/blender/freestyle/CMakeLists.txt
@@ -508,8 +508,6 @@ set(SRC
intern/view_map/ViewMapAdvancedIterators.h
intern/view_map/ViewMapBuilder.cpp
intern/view_map/ViewMapBuilder.h
- intern/view_map/ViewMapIO.cpp
- intern/view_map/ViewMapIO.h
intern/view_map/ViewMapIterators.h
intern/view_map/ViewMapTesselator.cpp
intern/view_map/ViewMapTesselator.h
diff --git a/source/blender/freestyle/intern/application/Controller.cpp b/source/blender/freestyle/intern/application/Controller.cpp
index 024bc80f3fa..cc815b5317f 100644
--- a/source/blender/freestyle/intern/application/Controller.cpp
+++ b/source/blender/freestyle/intern/application/Controller.cpp
@@ -36,7 +36,6 @@ extern "C" {
#include "../view_map/SteerableViewMap.h"
#include "../view_map/ViewMap.h"
-#include "../view_map/ViewMapIO.h"
#include "../view_map/ViewMapTesselator.h"
#include "../winged_edge/Curvature.h"
@@ -1099,13 +1098,10 @@ void Controller::init_options()
Config::Path *cpath = Config::Path::getInstance();
// Directories
- ViewMapIO::Options::setModelsPath(cpath->getModelsPath());
TextureManager::Options::setPatternsPath(cpath->getPatternsPath());
TextureManager::Options::setBrushesPath(cpath->getModelsPath());
// ViewMap Format
- ViewMapIO::Options::rmFlags(ViewMapIO::Options::FLOAT_VECTORS);
- ViewMapIO::Options::rmFlags(ViewMapIO::Options::NO_OCCLUDERS);
setComputeSteerableViewMapFlag(false);
// Visibility
diff --git a/source/blender/freestyle/intern/view_map/ViewMapIO.cpp b/source/blender/freestyle/intern/view_map/ViewMapIO.cpp
deleted file mode 100644
index 47d9e61ba2f..00000000000
--- a/source/blender/freestyle/intern/view_map/ViewMapIO.cpp
+++ /dev/null
@@ -1,1294 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0-or-later */
-
-/** \file
- * \ingroup freestyle
- * \brief Functions to manage I/O for the view map
- */
-
-#include <climits>
-
-#include "ViewMapIO.h"
-
-#ifdef IRIX
-# define WRITE(n) Internal::write<sizeof((n))>(out, (const char *)(&(n)))
-# define READ(n) Internal::read<sizeof((n))>(in, (char *)(&(n)))
-#else
-# define WRITE(n) out.write((const char *)(&(n)), sizeof((n)))
-# define READ(n) in.read((char *)(&(n)), sizeof((n)))
-#endif
-
-#define WRITE_IF_NON_NULL(ptr) \
- if (ptr) { \
- WRITE((ptr)->userdata); \
- } \
- else { \
- WRITE(ZERO); \
- } \
- (void)0
-
-#define READ_IF_NON_NULL(ptr, array) \
- READ(tmp); \
- if (tmp) { \
- (ptr) = (array)[tmp]; \
- } \
- else { \
- (ptr) = NULL; \
- } \
- (void)0
-
-namespace Freestyle::ViewMapIO {
-
-namespace Internal {
-
-static ViewMap *g_vm;
-
-//////////////////// 'load' Functions ////////////////////
-
-inline int load(istream &in, Vec3r &v)
-{
- if (Options::getFlags() & Options::FLOAT_VECTORS) {
- float tmp;
- READ(tmp);
- v[0] = tmp;
- READ(tmp);
- v[1] = tmp;
- READ(tmp);
- v[2] = tmp;
- }
- else {
- Vec3r::value_type tmp;
- READ(tmp);
- v[0] = tmp;
- READ(tmp);
- v[1] = tmp;
- READ(tmp);
- v[2] = tmp;
- }
- return 0;
-}
-
-inline int load(istream &in, Polygon3r &p)
-{
- unsigned tmp;
-
- // Id
- READ(tmp);
- p.setId(tmp);
-
- // vertices (List)
- vector<Vec3r> tmp_vec;
- Vec3r v;
- READ(tmp);
- for (unsigned int i = 0; i < tmp; i++) {
- load(in, v);
- tmp_vec.push_back(v);
- }
- p.setVertices(tmp_vec);
-
- // min & max
- // Already computed (in the SetVertices() method)
-
- return 0;
-}
-
-inline int load(istream &in, FrsMaterial &m)
-{
- float tmp_array[4];
- int i;
-
- // Diffuse
- for (i = 0; i < 4; i++) {
- READ(tmp_array[i]);
- }
- m.setDiffuse(tmp_array[0], tmp_array[1], tmp_array[2], tmp_array[3]);
-
- // Specular
- for (i = 0; i < 4; i++) {
- READ(tmp_array[i]);
- }
- m.setSpecular(tmp_array[0], tmp_array[1], tmp_array[2], tmp_array[3]);
-
- // Ambient
- for (i = 0; i < 4; i++) {
- READ(tmp_array[i]);
- }
- m.setAmbient(tmp_array[0], tmp_array[1], tmp_array[2], tmp_array[3]);
-
- // Emission
- for (i = 0; i < 4; i++) {
- READ(tmp_array[i]);
- }
- m.setEmission(tmp_array[0], tmp_array[1], tmp_array[2], tmp_array[3]);
-
- // Shininess
- READ(tmp_array[0]);
- m.setShininess(tmp_array[0]);
-
- return 0;
-}
-
-static int load(istream &in, ViewShape *vs)
-{
- if (!vs || !vs->sshape()) {
- return 1;
- }
-
- // SShape
-
- // -> Id
- Id::id_type id1, id2;
- READ(id1);
- READ(id2);
- vs->sshape()->setId(Id(id1, id2));
-
- // -> Importance
- float importance;
- READ(importance);
- vs->sshape()->setImportance(importance);
-
- // -> BBox
- // Not necessary (only used during view map computatiom)
-
- unsigned i, size, tmp;
-
- // -> Material
- READ(size);
- vector<FrsMaterial> frs_materials;
- FrsMaterial m;
- for (i = 0; i < size; ++i) {
- load(in, m);
- frs_materials.push_back(m);
- }
- vs->sshape()->setFrsMaterials(frs_materials);
-
- // -> VerticesList (List)
- READ(size);
- for (i = 0; i < size; i++) {
- SVertex *sv;
- READ_IF_NON_NULL(sv, g_vm->SVertices());
- vs->sshape()->AddNewVertex(sv);
- }
-
- // -> Chains (List)
- READ(size);
- for (i = 0; i < size; i++) {
- FEdge *fe;
- READ_IF_NON_NULL(fe, g_vm->FEdges());
- vs->sshape()->AddChain(fe);
- }
-
- // -> EdgesList (List)
- READ(size);
- for (i = 0; i < size; i++) {
- FEdge *fe;
- READ_IF_NON_NULL(fe, g_vm->FEdges());
- vs->sshape()->AddEdge(fe);
- }
-
- // ViewEdges (List)
- READ(size);
- for (i = 0; i < size; i++) {
- ViewEdge *ve;
- READ_IF_NON_NULL(ve, g_vm->ViewEdges());
- vs->AddEdge(ve);
- }
-
- // ViewVertices (List)
- READ(size);
- for (i = 0; i < size; i++) {
- ViewVertex *vv;
- READ_IF_NON_NULL(vv, g_vm->ViewVertices());
- vs->AddVertex(vv);
- }
-
- return 0;
-}
-
-static int load(istream &in, FEdge *fe)
-{
- if (!fe) {
- return 1;
- }
-
- bool b;
-
- FEdgeSmooth *fesmooth = nullptr;
- FEdgeSharp *fesharp = nullptr;
- if (fe->isSmooth()) {
- fesmooth = dynamic_cast<FEdgeSmooth *>(fe);
- }
- else {
- fesharp = dynamic_cast<FEdgeSharp *>(fe);
- }
-
- // Id
- Id::id_type id1, id2;
- READ(id1);
- READ(id2);
- fe->setId(Id(id1, id2));
-
- // Nature
- Nature::EdgeNature nature;
- READ(nature);
- fe->setNature(nature);
-
-#if 0 // hasVisibilityPoint
- bool b;
- READ(b);
- fe->setHasVisibilityPoint(b);
-#endif
-
- Vec3r v;
- unsigned int matindex;
-
-#if 0
- // VisibilityPointA
- load(in, v);
- fe->setVisibilityPointA(v);
-
- // VisibilityPointB
- load(in, v);
- fe->setVisibilityPointB(v);
-#endif
-
- if (fe->isSmooth()) {
- // Normal
- load(in, v);
- fesmooth->setNormal(v);
-
- // Material
- READ(matindex);
- fesmooth->setFrsMaterialIndex(matindex);
- }
- else {
- // aNormal
- load(in, v);
- fesharp->setNormalA(v);
-
- // bNormal
- load(in, v);
- fesharp->setNormalB(v);
-
- // Materials
- READ(matindex);
- fesharp->setaFrsMaterialIndex(matindex);
- READ(matindex);
- fesharp->setbFrsMaterialIndex(matindex);
- }
-
- unsigned tmp;
-
- // VertexA
- SVertex *sva;
- READ_IF_NON_NULL(sva, g_vm->SVertices());
- fe->setVertexA(sva);
-
- // VertexB
- SVertex *svb;
- READ_IF_NON_NULL(svb, g_vm->SVertices());
- fe->setVertexB(svb);
-
- // NextEdge
- FEdge *nfe;
- READ_IF_NON_NULL(nfe, g_vm->FEdges());
- fe->setNextEdge(nfe);
-
- // PreviousEdge
- FEdge *pfe;
- READ_IF_NON_NULL(pfe, g_vm->FEdges());
- fe->setPreviousEdge(pfe);
-
- // ViewEdge
- ViewEdge *ve;
- READ_IF_NON_NULL(ve, g_vm->ViewEdges());
- fe->setViewEdge(ve);
-
- // Face
- // Not necessary (only used during view map computatiom)
-
- Polygon3r p;
-
- // aFace
- load(in, p);
- fe->setaFace(p);
-
- // occludeeEmpty
- READ(b);
- fe->setOccludeeEmpty(b);
-
- // occludeeIntersection
- load(in, v);
- fe->setOccludeeIntersection(v);
-
- return 0;
-}
-
-static int load(istream &in, SVertex *sv)
-{
- if (!sv) {
- return 1;
- }
-
- // Id
- Id::id_type id1, id2;
- READ(id1);
- READ(id2);
- sv->setId(Id(id1, id2));
-
- Vec3r v;
-
- // Point3D
- load(in, v);
- sv->setPoint3D(v);
-
- // Point2D
- load(in, v);
- sv->setPoint2D(v);
-
- unsigned tmp;
-
- // Shape
- ViewShape *vs;
- READ_IF_NON_NULL(vs, g_vm->ViewShapes());
- sv->setShape(vs->sshape());
-
- // pViewVertex
- ViewVertex *vv;
- READ_IF_NON_NULL(vv, g_vm->ViewVertices());
- sv->setViewVertex(vv);
-
- unsigned i, size;
-
- // Normals (List)
- READ(size);
- for (i = 0; i < size; i++) {
- load(in, v);
- sv->AddNormal(v);
- }
-
- // FEdges (List)
- READ(size);
- FEdge *fe;
- for (i = 0; i < size; i++) {
- READ_IF_NON_NULL(fe, g_vm->FEdges());
- sv->AddFEdge(fe);
- }
-
- return 0;
-}
-
-static int load(istream &in, ViewEdge *ve)
-{
- if (!ve) {
- return 1;
- }
-
- unsigned tmp;
-
- // Id
- Id::id_type id1, id2;
- READ(id1);
- READ(id2);
- ve->setId(Id(id1, id2));
-
- // Nature
- Nature::EdgeNature nature;
- READ(nature);
- ve->setNature(nature);
-
- // QI
- READ(tmp);
- ve->setQI(tmp);
-
- // Shape
- ViewShape *vs;
- READ_IF_NON_NULL(vs, g_vm->ViewShapes());
- ve->setShape(vs);
-
- // aShape
- ViewShape *avs;
- READ_IF_NON_NULL(avs, g_vm->ViewShapes());
- ve->setaShape(avs);
-
- // FEdgeA
- FEdge *fea;
- READ_IF_NON_NULL(fea, g_vm->FEdges());
- ve->setFEdgeA(fea);
-
- // FEdgeB
- FEdge *feb;
- READ_IF_NON_NULL(feb, g_vm->FEdges());
- ve->setFEdgeB(feb);
-
- // A
- ViewVertex *vva;
- READ_IF_NON_NULL(vva, g_vm->ViewVertices());
- ve->setA(vva);
-
- // B
- ViewVertex *vvb;
- READ_IF_NON_NULL(vvb, g_vm->ViewVertices());
- ve->setB(vvb);
-
- // Occluders (List)
- if (!(Options::getFlags() & Options::NO_OCCLUDERS)) {
- unsigned size;
- READ(size);
- ViewShape *vso;
- for (unsigned int i = 0; i < size; i++) {
- READ_IF_NON_NULL(vso, g_vm->ViewShapes());
- ve->AddOccluder(vso);
- }
- }
-
- return 0;
-}
-
-static int load(istream &in, ViewVertex *vv)
-{
- if (!vv) {
- return 1;
- }
-
- unsigned tmp;
- bool b;
-
- // Nature
- Nature::VertexNature nature;
- READ(nature);
- vv->setNature(nature);
-
- if (vv->getNature() & Nature::T_VERTEX) {
- TVertex *tv = dynamic_cast<TVertex *>(vv);
-
- // Id
- Id::id_type id1, id2;
- READ(id1);
- READ(id2);
- tv->setId(Id(id1, id2));
-
- // FrontSVertex
- SVertex *fsv;
- READ_IF_NON_NULL(fsv, g_vm->SVertices());
- tv->setFrontSVertex(fsv);
-
- // BackSVertex
- SVertex *bsv;
- READ_IF_NON_NULL(bsv, g_vm->SVertices());
- tv->setBackSVertex(bsv);
-
- // FrontEdgeA
- ViewEdge *fea;
- READ_IF_NON_NULL(fea, g_vm->ViewEdges());
- READ(b);
- tv->setFrontEdgeA(fea, b);
-
- // FrontEdgeB
- ViewEdge *feb;
- READ_IF_NON_NULL(feb, g_vm->ViewEdges());
- READ(b);
- tv->setFrontEdgeB(feb, b);
-
- // BackEdgeA
- ViewEdge *bea;
- READ_IF_NON_NULL(bea, g_vm->ViewEdges());
- READ(b);
- tv->setBackEdgeA(bea, b);
-
- // BackEdgeB
- ViewEdge *beb;
- READ_IF_NON_NULL(beb, g_vm->ViewEdges());
- READ(b);
- tv->setBackEdgeB(beb, b);
- }
- else if (vv->getNature() & Nature::NON_T_VERTEX) {
- NonTVertex *ntv = dynamic_cast<NonTVertex *>(vv);
-
- // SVertex
- SVertex *sv;
- READ_IF_NON_NULL(sv, g_vm->SVertices());
- ntv->setSVertex(sv);
-
- // ViewEdges (List)
- unsigned size;
- READ(size);
- ViewEdge *ve;
- for (unsigned int i = 0; i < size; i++) {
- READ_IF_NON_NULL(ve, g_vm->ViewEdges());
- READ(b);
- ntv->AddViewEdge(ve, b);
- }
- }
-
- return 0;
-}
-
-//////////////////// 'save' Functions ////////////////////
-
-inline int save(ostream &out, const Vec3r &v)
-{
- if (Options::getFlags() & Options::FLOAT_VECTORS) {
- float tmp;
-
- tmp = v[0];
- WRITE(tmp);
- tmp = v[1];
- WRITE(tmp);
- tmp = v[2];
- WRITE(tmp);
- }
- else {
- Vec3r::value_type tmp;
-
- tmp = v[0];
- WRITE(tmp);
- tmp = v[1];
- WRITE(tmp);
- tmp = v[2];
- WRITE(tmp);
- }
- return 0;
-}
-
-inline int save(ostream &out, const Polygon3r &p)
-{
- unsigned tmp;
-
- // Id
- tmp = p.getId();
- WRITE(tmp);
-
- // vertices (List)
- tmp = p.getVertices().size();
- WRITE(tmp);
- for (vector<Vec3r>::const_iterator i = p.getVertices().begin(); i != p.getVertices().end();
- i++) {
- save(out, *i);
- }
-
- // min & max
- // Do not need to be saved
-
- return 0;
-}
-
-inline int save(ostream &out, const FrsMaterial &m)
-{
- unsigned i;
-
- // Diffuse
- for (i = 0; i < 4; i++) {
- WRITE(m.diffuse()[i]);
- }
-
- // Specular
- for (i = 0; i < 4; i++) {
- WRITE(m.specular()[i]);
- }
-
- // Ambient
- for (i = 0; i < 4; i++) {
- WRITE(m.ambient()[i]);
- }
-
- // Emission
- for (i = 0; i < 4; i++) {
- WRITE(m.emission()[i]);
- }
-
- // Shininess
- float shininess = m.shininess();
- WRITE(shininess);
-
- return 0;
-}
-
-static int save(ostream &out, ViewShape *vs)
-{
- if (!vs || !vs->sshape()) {
- cerr << "Warning: null ViewShape" << endl;
- return 1;
- }
-
- unsigned tmp;
-
- // SShape
-
- // -> Id
- Id::id_type id = vs->sshape()->getId().getFirst();
- WRITE(id);
- id = vs->sshape()->getId().getSecond();
- WRITE(id);
-
- // -> Importance
- float importance = vs->sshape()->importance();
- WRITE(importance);
-
- // -> BBox
- // Not necessary (only used during view map computatiom)
-
- // -> Material
- unsigned int size = vs->sshape()->frs_materials().size();
- WRITE(size);
- for (unsigned int i = 0; i < size; ++i) {
- save(out, vs->sshape()->frs_material(i));
- }
-
- // -> VerticesList (List)
- tmp = vs->sshape()->getVertexList().size();
- WRITE(tmp);
- for (vector<SVertex *>::const_iterator i1 = vs->sshape()->getVertexList().begin();
- i1 != vs->sshape()->getVertexList().end();
- i1++) {
- WRITE_IF_NON_NULL(*i1);
- }
-
- // -> Chains (List)
- tmp = vs->sshape()->getChains().size();
- WRITE(tmp);
- for (vector<FEdge *>::const_iterator i2 = vs->sshape()->getChains().begin();
- i2 != vs->sshape()->getChains().end();
- i2++) {
- WRITE_IF_NON_NULL(*i2);
- }
-
- // -> EdgesList (List)
- tmp = vs->sshape()->getEdgeList().size();
- WRITE(tmp);
- for (vector<FEdge *>::const_iterator i3 = vs->sshape()->getEdgeList().begin();
- i3 != vs->sshape()->getEdgeList().end();
- i3++) {
- WRITE_IF_NON_NULL(*i3);
- }
-
- // ViewEdges (List)
- tmp = vs->edges().size();
- WRITE(tmp);
- for (vector<ViewEdge *>::const_iterator i4 = vs->edges().begin(); i4 != vs->edges().end();
- i4++) {
- WRITE_IF_NON_NULL(*i4);
- }
-
- // ViewVertices (List)
- tmp = vs->vertices().size();
- WRITE(tmp);
- for (vector<ViewVertex *>::const_iterator i5 = vs->vertices().begin();
- i5 != vs->vertices().end();
- i5++) {
- WRITE_IF_NON_NULL(*i5);
- }
-
- return 0;
-}
-
-static int save(ostream &out, FEdge *fe)
-{
- if (!fe) {
- cerr << "Warning: null FEdge" << endl;
- return 1;
- }
-
- FEdgeSmooth *fesmooth = dynamic_cast<FEdgeSmooth *>(fe);
- FEdgeSharp *fesharp = dynamic_cast<FEdgeSharp *>(fe);
-
- // Id
- Id::id_type id = fe->getId().getFirst();
- WRITE(id);
- id = fe->getId().getSecond();
- WRITE(id);
-
- // Nature
- Nature::EdgeNature nature = fe->getNature();
- WRITE(nature);
-
- bool b;
-
-#if 0
- // hasVisibilityPoint
- b = fe->hasVisibilityPoint();
- WRITE(b);
-
- // VisibilityPointA
- save(out, fe->visibilityPointA());
-
- // VisibilityPointB
- save(out, fe->visibilityPointB());
-#endif
-
- unsigned index;
- if (fe->isSmooth()) {
- // normal
- save(out, fesmooth->normal());
- // material
- index = fesmooth->frs_materialIndex();
- WRITE(index);
- }
- else {
- // aNormal
- save(out, fesharp->normalA());
- // bNormal
- save(out, fesharp->normalB());
- // aMaterial
- index = fesharp->aFrsMaterialIndex();
- WRITE(index);
- // bMaterial
- index = fesharp->bFrsMaterialIndex();
- WRITE(index);
- }
-
- // VertexA
- WRITE_IF_NON_NULL(fe->vertexA());
-
- // VertexB
- WRITE_IF_NON_NULL(fe->vertexB());
-
- // NextEdge
- WRITE_IF_NON_NULL(fe->nextEdge());
-
- // PreviousEdge
- WRITE_IF_NON_NULL(fe->previousEdge());
-
- // ViewEdge
- WRITE_IF_NON_NULL(fe->viewedge());
-
- // Face
- // Not necessary (only used during view map computatiom)
-
- // aFace
- save(out, (Polygon3r &)fe->aFace());
-
- // occludeeEmpty
- b = fe->getOccludeeEmpty();
- WRITE(b);
-
- // occludeeIntersection
- save(out, fe->getOccludeeIntersection());
-
- return 0;
-}
-
-static int save(ostream &out, SVertex *sv)
-{
- if (!sv) {
- cerr << "Warning: null SVertex" << endl;
- return 1;
- }
-
- unsigned tmp;
-
- // Id
- Id::id_type id = sv->getId().getFirst();
- WRITE(id);
- id = sv->getId().getSecond();
- WRITE(id);
-
- Vec3r v;
-
- // Point3D
- v = sv->point3D();
- save(out, sv->point3D());
-
- // Point2D
- v = sv->point2D();
- save(out, v);
-
- // Shape
- WRITE_IF_NON_NULL(sv->shape());
-
- // pViewVertex
- WRITE_IF_NON_NULL(sv->viewvertex());
-
- // Normals (List)
- // NOTE: the 'size()' method of a set doesn't seem to return the actual size of the given set, so
- // we have to hack it...
- set<Vec3r>::const_iterator i;
- for (i = sv->normals().begin(), tmp = 0; i != sv->normals().end(); i++, tmp++) {
- /* pass */
- }
- WRITE(tmp);
- for (i = sv->normals().begin(); i != sv->normals().end(); i++) {
- save(out, *i);
- }
-
- // FEdges (List)
- tmp = sv->fedges().size();
- WRITE(tmp);
- for (vector<FEdge *>::const_iterator j = sv->fedges_begin(); j != sv->fedges_end(); j++) {
- WRITE_IF_NON_NULL(*j);
- }
-
- return 0;
-}
-
-static int save(ostream &out, ViewEdge *ve)
-{
- if (!ve) {
- cerr << "Warning: null ViewEdge" << endl;
- return 1;
- }
-
- unsigned tmp;
-
- // Id
- Id::id_type id = ve->getId().getFirst();
- WRITE(id);
- id = ve->getId().getSecond();
- WRITE(id);
-
- // Nature
- Nature::EdgeNature nature = ve->getNature();
- WRITE(nature);
-
- // QI
- unsigned qi = ve->qi();
- WRITE(qi);
-
- // Shape
- WRITE_IF_NON_NULL(ve->shape());
-
- // aShape
- WRITE_IF_NON_NULL(ve->aShape());
-
- // FEdgeA
- WRITE_IF_NON_NULL(ve->fedgeA());
-
- // FEdgeB
- WRITE_IF_NON_NULL(ve->fedgeB());
-
- // A
- WRITE_IF_NON_NULL(ve->A());
-
- // B
- WRITE_IF_NON_NULL(ve->B());
-
- // Occluders (List)
- if (!(Options::getFlags() & Options::NO_OCCLUDERS)) {
- tmp = ve->occluders().size();
- WRITE(tmp);
- for (vector<ViewShape *>::const_iterator i = ve->occluders().begin();
- i != ve->occluders().end();
- i++) {
- WRITE_IF_NON_NULL((*i));
- }
- }
-
- return 0;
-}
-
-static int save(ostream &out, ViewVertex *vv)
-{
- if (!vv) {
- cerr << "Warning: null ViewVertex" << endl;
- return 1;
- }
-
- // Nature
- Nature::VertexNature nature = vv->getNature();
- WRITE(nature);
-
- if (vv->getNature() & Nature::T_VERTEX) {
- TVertex *tv = dynamic_cast<TVertex *>(vv);
-
- // Id
- Id::id_type id = tv->getId().getFirst();
- WRITE(id);
- id = tv->getId().getSecond();
- WRITE(id);
-
- // FrontSVertex
- WRITE_IF_NON_NULL(tv->frontSVertex());
-
- // BackSVertex
- WRITE_IF_NON_NULL(tv->backSVertex());
-
- // FrontEdgeA
- WRITE_IF_NON_NULL(tv->frontEdgeA().first);
- WRITE(tv->frontEdgeA().second);
-
- // FrontEdgeB
- WRITE_IF_NON_NULL(tv->frontEdgeB().first);
- WRITE(tv->frontEdgeB().second);
-
- // BackEdgeA
- WRITE_IF_NON_NULL(tv->backEdgeA().first);
- WRITE(tv->backEdgeA().second);
-
- // BackEdgeB
- WRITE_IF_NON_NULL(tv->backEdgeB().first);
- WRITE(tv->backEdgeB().second);
- }
- else if (vv->getNature() & Nature::NON_T_VERTEX) {
- NonTVertex *ntv = dynamic_cast<NonTVertex *>(vv);
-
- // SVertex
- WRITE_IF_NON_NULL(ntv->svertex());
-
- // ViewEdges (List)
- unsigned size = ntv->viewedges().size();
- WRITE(size);
- vector<ViewVertex::directedViewEdge>::const_iterator i = ntv->viewedges().begin();
- for (; i != ntv->viewedges().end(); i++) {
- WRITE_IF_NON_NULL(i->first);
- WRITE(i->second);
- }
- }
- else {
- cerr << "Warning: unexpected ViewVertex nature" << endl;
- return 1;
- }
-
- return 0;
-}
-
-} // End of namespace Internal
-
-//////////////////// "Public" 'load' and 'save' functions ////////////////////
-
-#define SET_PROGRESS(n) \
- if (pb) { \
- pb->setProgress((n)); \
- } \
- (void)0
-
-int load(istream &in, ViewMap *vm, ProgressBar *pb)
-{
- if (!vm) {
- return 1;
- }
-
- // soc unused - unsigned tmp;
- int err = 0;
- Internal::g_vm = vm;
-
- // Management of the progress bar (if present)
- if (pb) {
- pb->reset();
- pb->setLabelText("Loading View Map...");
- pb->setTotalSteps(6);
- pb->setProgress(0);
- }
-
- // Read and set the options
- unsigned char flags;
- READ(flags);
- Options::setFlags(flags);
-
- // Read the size of the five ViewMap's lists (with some extra information for the ViewVertices)
- // and instantiate them (with default costructors)
- unsigned vs_s, fe_s, fe_rle1, fe_rle2, sv_s, ve_s, vv_s, vv_rle1, vv_rle2;
- READ(vs_s);
- READ(fe_s);
-
- if (fe_s) {
- bool b;
- READ(b);
- /* NOLINTNEXTLINE: bugprone-infinite-loop */
- for (READ(fe_rle1), fe_rle2 = 0; fe_rle1 <= fe_s; fe_rle2 = fe_rle1, READ(fe_rle1)) {
- if (b) {
- for (unsigned int i = fe_rle2; i < fe_rle1; i++) {
- FEdgeSmooth *fes = new FEdgeSmooth;
- vm->AddFEdge(fes);
- }
- b = !b;
- }
- else if (!b) {
- for (unsigned int i = fe_rle2; i < fe_rle1; i++) {
- FEdgeSharp *fes = new FEdgeSharp;
- vm->AddFEdge(fes);
- }
- b = !b;
- }
- }
- }
-
- READ(sv_s);
- READ(ve_s);
- READ(vv_s);
-
- if (vv_s) {
- Nature::VertexNature nature;
- READ(nature);
- /* NOLINTNEXTLINE: bugprone-infinite-loop */
- for (READ(vv_rle1), vv_rle2 = 0; vv_rle1 <= vv_s; vv_rle2 = vv_rle1, READ(vv_rle1)) {
- if (nature & Nature::T_VERTEX) {
- for (unsigned int i = vv_rle2; i < vv_rle1; i++) {
- TVertex *tv = new TVertex();
- vm->AddViewVertex(tv);
- }
- nature = Nature::NON_T_VERTEX;
- }
- else if (nature & Nature::NON_T_VERTEX) {
- for (unsigned int i = vv_rle2; i < vv_rle1; i++) {
- NonTVertex *ntv = new NonTVertex();
- vm->AddViewVertex(ntv);
- }
- nature = Nature::T_VERTEX;
- }
- }
- }
-
- for (unsigned int i0 = 0; i0 < vs_s; i0++) {
- SShape *ss = new SShape();
- ViewShape *vs = new ViewShape();
- vs->setSShape(ss);
- ss->setViewShape(vs);
- vm->AddViewShape(vs);
- }
-#if 0
- for (unsigned int i1 = 0; i1 < fe_s; i1++) {
- FEdge *fe = new FEdge();
- vm->AddFEdge(fe);
- }
-#endif
- for (unsigned int i2 = 0; i2 < sv_s; i2++) {
- SVertex *sv = new SVertex();
- vm->AddSVertex(sv);
- }
- for (unsigned int i3 = 0; i3 < ve_s; i3++) {
- ViewEdge *ve = new ViewEdge();
- vm->AddViewEdge(ve);
- }
-
- // Read the values for all the objects created above
- SET_PROGRESS(1);
- for (vector<ViewShape *>::const_iterator i4 = vm->ViewShapes().begin();
- i4 != vm->ViewShapes().end();
- i4++) {
- err += Internal::load(in, *i4);
- }
- SET_PROGRESS(2);
- for (vector<FEdge *>::const_iterator i5 = vm->FEdges().begin(); i5 != vm->FEdges().end(); i5++) {
- err += Internal::load(in, *i5);
- }
- SET_PROGRESS(3);
- for (vector<SVertex *>::const_iterator i6 = vm->SVertices().begin(); i6 != vm->SVertices().end();
- i6++) {
- err += Internal::load(in, *i6);
- }
- SET_PROGRESS(4);
- for (vector<ViewEdge *>::const_iterator i7 = vm->ViewEdges().begin();
- i7 != vm->ViewEdges().end();
- i7++) {
- err += Internal::load(in, *i7);
- }
- SET_PROGRESS(5);
- for (vector<ViewVertex *>::const_iterator i8 = vm->ViewVertices().begin();
- i8 != vm->ViewVertices().end();
- i8++) {
- err += Internal::load(in, *i8);
- }
- SET_PROGRESS(6);
-
- // Read the shape id to index mapping
- unsigned map_s;
- READ(map_s);
- unsigned id, index;
- for (unsigned int i4 = 0; i4 < map_s; ++i4) {
- READ(id);
- READ(index);
- vm->shapeIdToIndexMap()[id] = index;
- }
-
- return err;
-}
-
-int save(ostream &out, ViewMap *vm, ProgressBar *pb)
-{
- if (!vm) {
- return 1;
- }
-
- int err = 0;
-
- // Management of the progress bar (if present)
- if (pb) {
- pb->reset();
- pb->setLabelText("Saving View Map...");
- pb->setTotalSteps(6);
- pb->setProgress(0);
- }
-
- // For every object, initialize its userdata member to its index in the ViewMap list
- for (unsigned int i0 = 0; i0 < vm->ViewShapes().size(); i0++) {
- vm->ViewShapes()[i0]->userdata = POINTER_FROM_UINT(i0);
- vm->ViewShapes()[i0]->sshape()->userdata = POINTER_FROM_UINT(i0);
- }
- for (unsigned int i1 = 0; i1 < vm->FEdges().size(); i1++) {
- vm->FEdges()[i1]->userdata = POINTER_FROM_UINT(i1);
- }
- for (unsigned int i2 = 0; i2 < vm->SVertices().size(); i2++) {
- vm->SVertices()[i2]->userdata = POINTER_FROM_UINT(i2);
- }
- for (unsigned int i3 = 0; i3 < vm->ViewEdges().size(); i3++) {
- vm->ViewEdges()[i3]->userdata = POINTER_FROM_UINT(i3);
- }
- for (unsigned int i4 = 0; i4 < vm->ViewVertices().size(); i4++) {
- vm->ViewVertices()[i4]->userdata = POINTER_FROM_UINT(i4);
- }
-
- // Write the current options
- unsigned char flags = Options::getFlags();
- WRITE(flags);
-
- // Write the size of the five lists (with some extra information for the ViewVertices)
- unsigned size;
- size = vm->ViewShapes().size();
- WRITE(size);
- size = vm->FEdges().size();
- WRITE(size);
- if (size) {
- bool b = vm->FEdges()[0]->isSmooth();
- WRITE(b);
- for (unsigned int i = 0; i < size; i++) {
- while (i < size && (vm->FEdges()[i]->isSmooth() == b)) {
- i++;
- }
- if (i < size) {
- WRITE(i);
- b = !b;
- }
- }
- WRITE(size);
- size++;
- WRITE(size);
- }
- size = vm->SVertices().size();
- WRITE(size);
- size = vm->ViewEdges().size();
- WRITE(size);
- size = vm->ViewVertices().size();
- WRITE(size);
- if (size) {
- Nature::VertexNature nature = vm->ViewVertices()[0]->getNature();
- WRITE(nature);
- nature &= ~Nature::VIEW_VERTEX;
- for (unsigned int i = 0; i < size; i++) {
- while (i < size && (vm->ViewVertices()[i]->getNature() & nature)) {
- i++;
- }
- if (i < size) {
- WRITE(i);
- nature = vm->ViewVertices()[i]->getNature() & ~Nature::VIEW_VERTEX;
- }
- }
- WRITE(size);
- size++;
- WRITE(size);
- }
-
- // Write all the elts of the ViewShapes List
- SET_PROGRESS(1);
- for (vector<ViewShape *>::const_iterator i5 = vm->ViewShapes().begin();
- i5 != vm->ViewShapes().end();
- i5++) {
- err += Internal::save(out, *i5);
- }
- SET_PROGRESS(2);
- for (vector<FEdge *>::const_iterator i6 = vm->FEdges().begin(); i6 != vm->FEdges().end(); i6++) {
- err += Internal::save(out, *i6);
- }
- SET_PROGRESS(3);
- for (vector<SVertex *>::const_iterator i7 = vm->SVertices().begin(); i7 != vm->SVertices().end();
- i7++) {
- err += Internal::save(out, *i7);
- }
- SET_PROGRESS(4);
- for (vector<ViewEdge *>::const_iterator i8 = vm->ViewEdges().begin();
- i8 != vm->ViewEdges().end();
- i8++) {
- err += Internal::save(out, *i8);
- }
- SET_PROGRESS(5);
- for (vector<ViewVertex *>::const_iterator i9 = vm->ViewVertices().begin();
- i9 != vm->ViewVertices().end();
- i9++) {
- err += Internal::save(out, *i9);
- }
-
- // Write the shape id to index mapping
- size = vm->shapeIdToIndexMap().size();
- WRITE(size);
- unsigned int id, index;
- for (ViewMap::id_to_index_map::iterator mit = vm->shapeIdToIndexMap().begin(),
- mitend = vm->shapeIdToIndexMap().end();
- mit != mitend;
- ++mit) {
- id = mit->first;
- index = mit->second;
- WRITE(id);
- WRITE(index);
- }
-
- // Reset 'userdata' members
- for (vector<ViewShape *>::const_iterator j0 = vm->ViewShapes().begin();
- j0 != vm->ViewShapes().end();
- j0++) {
- (*j0)->userdata = nullptr;
- (*j0)->sshape()->userdata = nullptr;
- }
- for (vector<FEdge *>::const_iterator j1 = vm->FEdges().begin(); j1 != vm->FEdges().end(); j1++) {
- (*j1)->userdata = nullptr;
- }
- for (vector<SVertex *>::const_iterator j2 = vm->SVertices().begin(); j2 != vm->SVertices().end();
- j2++) {
- (*j2)->userdata = nullptr;
- }
- for (vector<ViewEdge *>::const_iterator j3 = vm->ViewEdges().begin();
- j3 != vm->ViewEdges().end();
- j3++) {
- (*j3)->userdata = nullptr;
- }
- for (vector<ViewVertex *>::const_iterator j4 = vm->ViewVertices().begin();
- j4 != vm->ViewVertices().end();
- j4++) {
- (*j4)->userdata = nullptr;
- }
- SET_PROGRESS(6);
-
- return err;
-}
-
-//////////////////// Options ////////////////////
-
-namespace Options {
-
-namespace Internal {
-
-static unsigned char g_flags = 0;
-static string g_models_path;
-
-} // End of namespace Internal
-
-void setFlags(const unsigned char flags)
-{
- Internal::g_flags = flags;
-}
-
-void addFlags(const unsigned char flags)
-{
- Internal::g_flags |= flags;
-}
-
-void rmFlags(const unsigned char flags)
-{
- Internal::g_flags &= ~flags;
-}
-
-unsigned char getFlags()
-{
- return Internal::g_flags;
-}
-
-void setModelsPath(const string &path)
-{
- Internal::g_models_path = path;
-}
-
-string getModelsPath()
-{
- return Internal::g_models_path;
-}
-
-} // namespace Options
-
-} // namespace Freestyle::ViewMapIO
diff --git a/source/blender/freestyle/intern/view_map/ViewMapIO.h b/source/blender/freestyle/intern/view_map/ViewMapIO.h
deleted file mode 100644
index 4796b28a38a..00000000000
--- a/source/blender/freestyle/intern/view_map/ViewMapIO.h
+++ /dev/null
@@ -1,89 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0-or-later */
-
-#pragma once
-
-/** \file
- * \ingroup freestyle
- * \brief Functions to manage I/O for the view map
- */
-
-#include <fstream>
-#include <string>
-
-#include "ViewMap.h"
-
-#include "../system/FreestyleConfig.h"
-#include "../system/ProgressBar.h"
-
-namespace Freestyle {
-
-namespace ViewMapIO {
-
-static const unsigned ZERO = UINT_MAX;
-
-int load(istream &in, ViewMap *vm, ProgressBar *pb = NULL);
-
-int save(ostream &out, ViewMap *vm, ProgressBar *pb = NULL);
-
-namespace Options {
-
-static const unsigned char FLOAT_VECTORS = 1;
-static const unsigned char NO_OCCLUDERS = 2;
-
-void setFlags(unsigned char flags);
-
-void addFlags(unsigned char flags);
-
-void rmFlags(unsigned char flags);
-
-unsigned char getFlags();
-
-void setModelsPath(const string &path);
-
-string getModelsPath();
-
-}; // namespace Options
-
-#ifdef IRIX
-
-namespace Internal {
-
-template<unsigned S> ostream &write(ostream &out, const char *str)
-{
- out.put(str[S - 1]);
- return write<S - 1>(out, str);
-}
-
-template<> ostream &write<1>(ostream &out, const char *str)
-{
- return out.put(str[0]);
-}
-
-template<> ostream &write<0>(ostream &out, const char *)
-{
- return out;
-}
-
-template<unsigned S> istream &read(istream &in, char *str)
-{
- in.get(str[S - 1]);
- return read<S - 1>(in, str);
-}
-
-template<> istream &read<1>(istream &in, char *str)
-{
- return in.get(str[0]);
-}
-
-template<> istream &read<0>(istream &in, char *)
-{
- return in;
-}
-
-} // End of namespace Internal
-
-#endif // IRIX
-
-} // End of namespace ViewMapIO
-
-} /* namespace Freestyle */