17 #include "vtdata/StructArray.h"
19 #define COLOR_SPREAD 216 // 216 color variations
26 extern const vtString BMAT_NAME_HIGHLIGHT;
43 const RGBf &color =
RGBf(),
int iType = -1)
const;
44 void InitializeMaterials();
45 void CreateMaterials();
52 vtMaterialArrayPtr m_pMaterials;
54 bool m_bMaterialsCreated;
59 RGBf m_Colors[COLOR_SPREAD];
62 int m_hightlight1, m_hightlight2, m_hightlight3, m_wire;
73 vtStructure3d() { m_pContainer = NULL; m_bIsVIAContributor =
false; m_bIsVIATarget =
false; }
75 vtTransform *GetContainer() {
return m_pContainer; }
76 virtual osg::Node *GetContained() = 0;
80 virtual bool IsCreated() = 0;
84 virtual void DeleteNode() = 0;
89 void SetCastShadow(
bool b);
95 return s_MaterialDescriptors;
98 const RGBf &color =
RGBf(),
int type = -1)
100 return s_MaterialDescriptors.FindMaterialDescriptor(name, color, type);
102 static void InitializeMaterialArrays();
105 static void CreateSharedMaterials();
108 const bool GetVIAContributor()
const {
return m_bIsVIAContributor; }
109 const bool GetVIATarget()
const {
return m_bIsVIATarget; }
110 void SetVIAContributor(
const bool bVIAContributor) { m_bIsVIAContributor = bVIAContributor; }
111 void SetVIATarget(
const bool bVIATarget) { m_bIsVIATarget = bVIATarget; }
115 int FindMatIndex(
const vtString &Material,
const RGBf &inputColor =
RGBf(),
int iType = -1)
117 return s_MaterialDescriptors.FindMatIndex(Material, inputColor, iType);
121 return s_MaterialDescriptors.GetMatArray();
123 vtTransformPtr m_pContainer;
126 float ColorDiff(
const RGBi &c1,
const RGBi &c2);
129 static bool s_bMaterialsLoaded;
132 bool m_bIsVIAContributor;
148 virtual double DistanceToPoint(
const DPoint2 &p,
float fMaxRadius)
const;
153 virtual bool IsCreated();
154 virtual void DeleteNode();
156 virtual osg::Node *GetContained() {
return m_pModel.get(); }
166 osg::ref_ptr<osg::Node> m_pModel;
194 void OffsetSelectedStructures(
const DPoint2 &offset);
195 void OffsetSelectedStructuresVertical(
float offset);
207 virtual void SetEditedEdge(
vtBuilding *bld,
int lev,
int edge);
210 virtual void DestroyStructure(
int i);
218 #endif // STRUCTURE3DH