Blender V5.0
OccluderSource.h
Go to the documentation of this file.
1/* SPDX-FileCopyrightText: 2023 Blender Authors
2 *
3 * SPDX-License-Identifier: GPL-2.0-or-later */
4
5#pragma once
6
11
13
15
16#include "MEM_guardedalloc.h"
17
18namespace Freestyle {
19
20class OccluderSource {
21 // Disallow copying and assignment
22 OccluderSource(const OccluderSource &other);
23 OccluderSource &operator=(const OccluderSource &other);
24
25 public:
26 OccluderSource(const GridHelpers::Transform &transform, WingedEdge &we);
27 virtual ~OccluderSource();
28
29 void begin();
30 virtual bool next();
31 bool isValid();
32
33 WFace *getWFace();
36
37 virtual void getOccluderProscenium(real proscenium[4]);
38 virtual real averageOccluderArea();
39
40 protected:
42 vector<WShape *>::const_iterator currentShape, shapesEnd;
43 vector<WFace *>::const_iterator currentFace, facesEnd;
44
45 bool valid;
46
49
50 void buildCachedPolygon();
51
52 MEM_CXX_CLASS_ALLOC_FUNCS("Freestyle:OccluderSource")
53};
54
55} /* namespace Freestyle */
Class to define a cell grid surrounding the projected image of a scene.
Read Guarded memory(de)allocation.
Classes to define a Winged Edge data structure.
vector< WFace * >::const_iterator facesEnd
virtual void getOccluderProscenium(real proscenium[4])
vector< WShape * >::const_iterator currentShape
vector< WShape * >::const_iterator shapesEnd
vector< WFace * >::const_iterator currentFace
const GridHelpers::Transform & transform
inherits from class Rep
Definition AppCanvas.cpp:20
double real
Definition Precision.h:14