CFx SDK Documentation 2024 SP0
Loading...
Searching...
No Matches
FxHLR.h
Go to the documentation of this file.
1//
2// (C) Copyright 2005-2023 by Graebert GmbH.
3//
4// Permission to use, copy, modify, and distribute this software in
5// object code form for any purpose and without fee is hereby granted,
6// provided that the above copyright notice appears in all copies and
7// that both that copyright notice and the limited warranty and
8// restricted rights notice below appear in all supporting
9// documentation.
10//
11// GRAEBERT PROVIDES THIS PROGRAM "AS IS" AND WITH ALL FAULTS.
12// GRAEBERT SPECIFICALLY DISCLAIMS ANY IMPLIED WARRANTY OF
13// MERCHANTABILITY OR FITNESS FOR A PARTICULAR USE. GRAEBERT GMBH
14// DOES NOT WARRANT THAT THE OPERATION OF THE PROGRAM WILL BE
15// UNINTERRUPTED OR ERROR FREE.
16
17#pragma once
18
19#include "DDKERNEL.h"
20
21#include "IdArrays.h"
22
23#include "DbEntity.h"
24#include "DbViewport.h"
25
26namespace FxHLR
27{
29
30 // Input flags for HLR engine
32 {
33 kProject = 0x0001,
34 kShowAll = 0x0002,
35 kEntity = 0x0004,
36 kBlock = 0x0008,
37 kSubentity = 0x0010,
38 kHideTangents = 0x0020,
39 kCleanup = 0x0040,
40 kIsolines = 0x0080,
41 kUnite = 0x0100,
42 kReuse = 0x0200,
43 kProgress = 0x0400,
44 kHandlePoints = 0x0800,
45 kProcessAll = 0x1000,
48 kSingleCacheVp = 0x8000
49 };
50
52
59 {
60 public:
62 {
67 kUndefined
68 };
69
70 protected:
72
75
78
80
81 public:
83 virtual ~Data();
84
87 void SetResultEntity( OdDbEntityPtr pResultEnt );
88 void SetVisibility( Visibility visibility );
89 void SetHlrVisibility( Visibility visibility );
90 void SetSubentId( const OdDbSubentId& subentId );
91
97 const OdDbSubentId& GetSubentId() const;
98 };
99
101
102 class Engine;
103
110 {
111 protected:
114
115 public:
117
118 public:
121 Collector( const OdDbEntityPtrArray& entities );
122 Collector( Collector& collector );
123
124 virtual ~Collector();
125
128
130 void AddEntities( const OdDbEntityPtrArray& pEnts );
131 void AddEntity( const OdDbObjectId& id );
132 void AddEntities( const OdDbObjectIdArray& ids );
133
135 void RemoveEntities( const OdDbEntityPtrArray& pEnts );
136 void RemoveEntity( const OdDbObjectId& id );
138
139 void Clear();
140
141 };
142
144
145 typedef void( *_AbortCallbackFct ) ( bool *abort );
146 typedef void( *_ProgressCallbackFct ) ( int percent_completed );
147
154 {
155 protected:
163
164 public:
165 Engine( int iFlags = kShowAll | kEntity | kBlock | kSubentity | kReuse );
166 Engine( const OdDbObjectId& id, int iFlags = kShowAll | kEntity | kBlock | kSubentity | kReuse );
167 Engine( OdDbViewportPtr pViewport, int iFlags = kShowAll | kEntity | kBlock | kSubentity | kReuse );
168 Engine( const OdGePoint3d& viewTarget, const OdGeVector3d& viewDirection, int iFlags = kShowAll | kEntity | kBlock | kSubentity | kReuse );
169
170 virtual ~Engine();
171
172 OdResult Run( Collector& collector );
173
174 void SetAbortCallback( _AbortCallbackFct fct );
175
176 void SetAcisConversionProgressCallBack( _ProgressCallbackFct fct );
177 void SetHLProgressCallBack( _ProgressCallbackFct fct );
178 void SetFxConversionProgressCallBack( _ProgressCallbackFct fct );
179
180 static void CleanHlrCache();
182 static void CleanHlrCache( OdDbEntityPtr pEnt, OdGePoint3d viewTarget, OdGeVector3d viewDir );
183
184 };
185
186}
#define DDKERNEL_API
Definition: DDKERNEL.h:32
OdResult
Definition: OdResult.h:29
const OdDbEntityPtrArray & GetInputEntities() const
void RemoveEntities(OdDbObjectIdArray &ids)
void AddEntity(OdDbEntityPtr pEnt)
OdDbObjectIdArray m_aEntityIds
Definition: FxHLR.h:113
void RemoveEntities(const OdDbEntityPtrArray &pEnts)
void RemoveEntity(const OdDbObjectId &id)
OdDbEntityPtrArray m_apEntities
Definition: FxHLR.h:112
const OdDbObjectIdArray & GetInputEntityIds() const
Collector(const OdDbObjectIdArray &ids)
Collector(Collector &collector)
void AddEntities(const OdDbEntityPtrArray &pEnts)
OdArray< Data * > m_aOutputData
Definition: FxHLR.h:116
virtual ~Collector()
void AddEntity(const OdDbObjectId &id)
Collector(const OdDbEntityPtrArray &entities)
void RemoveEntity(OdDbEntityPtr pEnt)
void AddEntities(const OdDbObjectIdArray &ids)
Visibility m_visibility
Definition: FxHLR.h:76
void SetEntity(OdDbEntityPtr pEnt)
virtual ~Data()
Visibility GetVisibility() const
const OdDbSubentId & GetSubentId() const
OdDbSubentId m_subentId
Definition: FxHLR.h:74
OdDbEntityPtr m_pEntity
Definition: FxHLR.h:71
OdDbObjectIdArray m_objectIds
Definition: FxHLR.h:73
Visibility
Definition: FxHLR.h:62
@ kInternallyHidden
Definition: FxHLR.h:66
@ kHidden
Definition: FxHLR.h:64
@ kOccluded
Definition: FxHLR.h:65
@ kVisible
Definition: FxHLR.h:63
void SetVisibility(Visibility visibility)
OdDbEntityPtr GetEntity() const
void SetHlrVisibility(Visibility visibility)
OdDbEntityPtr GetResultEntity() const
Visibility GetHlrVisibility() const
void SetObjectIds(const OdDbObjectIdArray &id)
void SetResultEntity(OdDbEntityPtr pResultEnt)
void SetSubentId(const OdDbSubentId &subentId)
OdDbEntityPtr m_pResultEntity
Definition: FxHLR.h:79
Visibility m_hlrVisibility
Definition: FxHLR.h:77
const OdDbObjectIdArray & GetObjectIds() const
_ProgressCallbackFct m_pAcisConvertionProgressCallbackFct
Definition: FxHLR.h:160
_ProgressCallbackFct m_pFxConvertionProgressCallbackFct
Definition: FxHLR.h:162
void SetFxConversionProgressCallBack(_ProgressCallbackFct fct)
Engine(const OdDbObjectId &id, int iFlags=kShowAll|kEntity|kBlock|kSubentity|kReuse)
static void CleanHlrCache(OdDbEntityPtr pEnt, const OdDbObjectId &VpId=OdDbObjectId::kNull)
int m_iControl
Definition: FxHLR.h:158
OdGeVector3d m_vViewDirection
Definition: FxHLR.h:157
void SetAbortCallback(_AbortCallbackFct fct)
Engine(int iFlags=kShowAll|kEntity|kBlock|kSubentity|kReuse)
Engine(OdDbViewportPtr pViewport, int iFlags=kShowAll|kEntity|kBlock|kSubentity|kReuse)
static void CleanHlrCache()
OdGePoint3d m_ptTarget
Definition: FxHLR.h:156
OdResult Run(Collector &collector)
virtual ~Engine()
void SetAcisConversionProgressCallBack(_ProgressCallbackFct fct)
_ProgressCallbackFct m_pHlProgressCallbackFct
Definition: FxHLR.h:161
static void CleanHlrCache(OdDbEntityPtr pEnt, OdGePoint3d viewTarget, OdGeVector3d viewDir)
_AbortCallbackFct m_pAbortCallbackFct
Definition: FxHLR.h:159
void SetHLProgressCallBack(_ProgressCallbackFct fct)
Engine(const OdGePoint3d &viewTarget, const OdGeVector3d &viewDirection, int iFlags=kShowAll|kEntity|kBlock|kSubentity|kReuse)
static TOOLKIT_EXPORT_STATIC const OdDbObjectId kNull
Definition: DbObjectId.h:110
typedef void(APIENTRYP PFNGLACTIVETEXTUREPROC)(GLenum texture)
Control
Definition: FxHLR.h:32
@ kProcessAll
Definition: FxHLR.h:45
@ kReuse
Definition: FxHLR.h:42
@ kBlock
Definition: FxHLR.h:36
@ kHonorInternals
Definition: FxHLR.h:46
@ kSingleCacheVp
Definition: FxHLR.h:48
@ kMeshSilhouettes
Definition: FxHLR.h:47
@ kCleanup
Definition: FxHLR.h:39
@ kIsolines
Definition: FxHLR.h:40
@ kEntity
Definition: FxHLR.h:35
@ kHideTangents
Definition: FxHLR.h:38
@ kProgress
Definition: FxHLR.h:43
@ kSubentity
Definition: FxHLR.h:37
@ kHandlePoints
Definition: FxHLR.h:44
@ kShowAll
Definition: FxHLR.h:34
@ kProject
Definition: FxHLR.h:33
@ kUnite
Definition: FxHLR.h:41
void(* _ProgressCallbackFct)(int percent_completed)
Definition: FxHLR.h:146
void(* _AbortCallbackFct)(bool *abort)
Definition: FxHLR.h:145