gwnavgeneration/raster/cellrasterizerfromdynamictriangulation.h Source File

cellrasterizerfromdynamictriangulation.h
Go to the documentation of this file.
1 /*
2 * Copyright 2016 Autodesk, Inc. All rights reserved.
3 * Use of this software is subject to the terms of the Autodesk license agreement and any attachments or Appendices thereto provided at the time of installation or download,
4 * or which otherwise accompanies this software in either electronic or hard copy form, or which is signed by you and accepted by Autodesk.
5 */
6 
7 #pragma once
8 
15 
16 namespace Kaim
17 {
18 
19 class GeneratorSystem;
20 class InputCellBlob;
21 class DynamicTriangulation;
22 
23 class CellRasterizerFromDynamicTriangulation : public CellRasterizer
24 {
25 public:
26  CellRasterizerFromDynamicTriangulation(
27  GeneratorSystem* sys, KyInt32 stride, DynamicTriangulation* triangulation,
28  DynamicRasterCell* dynamicRaster, const PixelBox& pixelBox, const KyArrayDH_POD<KyUInt32>* modifiedTriangles, CellDesc& cellDesc
29  )
30  : CellRasterizer(dynamicRaster)
31  , m_singleStageRaster(GeneratorMemory::TlsHeap())
32  , m_triangleRasterizer(sys)
33  {
34  m_sys = sys;
35  m_dynamicTriangulation = triangulation;
36  m_pixelBox = pixelBox;
37  m_modifiedTriangles = modifiedTriangles;
38  m_singleStageRaster.Init(m_pixelBox);
39  m_triangleRasterizer.Init((KyFloat32)stride * m_sys->GetNormalizedRasterPrecision(), stride * IntCoordSystem::IntPixelSize(), &m_singleStageRaster);
40  m_cellDesc = cellDesc;
41  }
42 
43 public:
44  void SetDynamicTriangulation(DynamicTriangulation* triangulation)
45  {
46  m_dynamicTriangulation = triangulation;
47  }
48  void SetDynamicRasterCell(DynamicRasterCell* rasterCell)
49  {
50  m_dynamicRaster = rasterCell;
51  }
52  void SetModifiedTriangles(const KyArrayDH_POD<KyUInt32>* triangles)
53  {
54  m_modifiedTriangles = triangles;
55  }
56 
57 protected:
58  virtual KyResult DoRasterize();
59 
60 protected:
61  DynamicTriangulation* m_dynamicTriangulation;
62  PixelBox m_pixelBox;
63  const KyArrayDH_POD<KyUInt32>* m_modifiedTriangles;
64  SingleStageRaster m_singleStageRaster;
65  TriangleRasterizer m_triangleRasterizer;
66  CellDesc m_cellDesc;
67  GeneratorSystem* m_sys;
68 };
69 
70 
71 }
72 
73 
Navigation return code class.
Definition: types.h:108
The Autodesk Navigation namespace.
Definition: gamekitcrowddispersion.cpp:17
std::int32_t KyInt32
int32_t
Definition: types.h:24
float KyFloat32
float
Definition: types.h:32