52 #if( defined( GLSGEN_EXPORT_GLS3DCABLE ) || defined( GLSGEN_IMPORT_GLS3DCABLE ) || defined( GLS_EXPORT_GENERATED ) || defined( GLS_IMPORT_GENERATED ) ) \ 
   53     && defined( _MSC_VER ) 
   54 #    if defined( GLSGEN_EXPORT_GLS3DCABLE ) || defined( GLS_EXPORT_GENERATED ) 
   55 #        define GLSGEN_GLS3DCABLE_EXPORT __declspec( dllexport ) 
   57 #        define GLSGEN_GLS3DCABLE_EXPORT __declspec( dllimport ) 
   60 #    define GLSGEN_GLS3DCABLE_EXPORT 
   65 #define LIB_BASE_NAME "gls_3d_cable" 
   75     GLS_3DCABLE_FIRST_VALUE = GLS_LAST_INITIALIZER + 1,
 
   77     GLS_3DCABLE_FLEXIBILITY,
 
   78     GLS_3DCABLE_NUMBEROFSEGMENTS,
 
   79     GLS_3DCABLE_NUMBEROFSIDES,
 
   83     GLS_3DCABLE_SECTIONSLACKPCT,
 
   84     GLS_3DCABLE_SECTIONFLOORDIST,
 
   85     GLS_3DCABLE_COLLISIONSTYLE,
 
   86     GLS_3DCABLE_FILLCOLOR,
 
   90 typedef DynamicArray<double> DynamicDoubleArray; 
 
  114         const float DIFF = 0.0001f;
 
  116         if( 
BETWEEN( x, 0.0 - DIFF, 0.0 + DIFF ) )
 
  121         if( 
BETWEEN( y, 0.0 - DIFF, 0.0 + DIFF ) )
 
  126         if( 
BETWEEN( z, 0.0 - DIFF, 0.0 + DIFF ) )
 
  138         const double DIFF = 0.0001;
 
  140         if( !
BETWEEN( length, 0.0 - DIFF, 0.0 + DIFF ) )
 
  143             double inv_length = 1.0 / length;
 
  145             x = float( x * inv_length );
 
  146             y = float( y * inv_length );
 
  147             z = float( z * inv_length );
 
  163         const double DIFF = 0.0001;
 
  164         return ( 
BETWEEN( x, arg.x - DIFF, arg.x + DIFF ) && 
BETWEEN( y, arg.y - DIFF, arg.y + DIFF ) && 
BETWEEN( z, arg.z - DIFF, arg.z + DIFF ) );
 
  173         const double DIFF = 0.0001;
 
  174         return ( !
BETWEEN( x, arg.x - DIFF, arg.x + DIFF ) || !
BETWEEN( y, arg.y - DIFF, arg.y + DIFF ) || !
BETWEEN( z, arg.z - DIFF, arg.z + DIFF ) );
 
  186     DISTI_DEPRECATED( 
"This identifier is forbidden by the C++ standard. Use BaseClass instead." )
 
  192         TEXTUREPOINT_MULT = 50
 
  198         MIN_NUMBER_OF_SIDES = 1,
 
  199         MAX_NUMBER_OF_SIDES = 100 
 
  206         MAX_SEGEMENTS = 10000 
 
  211         COLLISIONSTYLE_NONE = 0,
 
  213 #if defined( USE_COLLISIONSTYLE_SLOW ) 
  219     friend class Gls3DCableEditor;
 
  225     GLSGEN_GLS3DCABLE_EXPORT 
Gls3DCable( 
bool generateInstance = 
false );
 
  231     GLSGEN_GLS3DCABLE_EXPORT 
Gls3DCable( 
const Gls3DCable& that, 
const bool generateNames );
 
  236     static GLSGEN_GLS3DCABLE_EXPORT 
DisplayObject* CreateInstance();
 
  256     virtual GLSGEN_GLS3DCABLE_EXPORT 
void Draw( 
void );
 
  258     virtual GLSGEN_GLS3DCABLE_EXPORT 
void Calculate( 
double time );
 
  262     virtual GLSGEN_GLS3DCABLE_EXPORT 
void SetValue( 
int spec, va_list& args );
 
  264     virtual GLSGEN_GLS3DCABLE_EXPORT 
void CalculateBoundingBox( 
void );
 
  278     virtual GLSGEN_GLS3DCABLE_EXPORT 
bool Hit( 
float x, 
float y, 
float z, 
float scale, 
const Vector& directionVector, 
Vector* collisionPoint );
 
  285     virtual GLSGEN_GLS3DCABLE_EXPORT 
void  LineWidth( 
float width );
 
  286     virtual GLSGEN_GLS3DCABLE_EXPORT 
float LineWidth( 
void );
 
  294     virtual GLSGEN_GLS3DCABLE_EXPORT 
int  PolygonMode( 
void );
 
  295     virtual GLSGEN_GLS3DCABLE_EXPORT 
void PolygonMode( 
int mode );
 
  297     virtual GLSGEN_GLS3DCABLE_EXPORT 
void PolygonEnd( 
const int mode );
 
  298     virtual GLSGEN_GLS3DCABLE_EXPORT 
int  PolygonEnd( 
void );
 
  300     virtual GLSGEN_GLS3DCABLE_EXPORT 
void Shading( 
const int mode );
 
  301     virtual GLSGEN_GLS3DCABLE_EXPORT 
int  Shading( 
void );
 
  303     virtual GLSGEN_GLS3DCABLE_EXPORT 
void DepthTest( 
unsigned char mode );
 
  304     virtual GLSGEN_GLS3DCABLE_EXPORT 
int  DepthTest( 
void );
 
  306     virtual GLSGEN_GLS3DCABLE_EXPORT 
void AntiAlias( 
bool mode );
 
  307     virtual GLSGEN_GLS3DCABLE_EXPORT 
bool AntiAlias( 
void );
 
  309     virtual GLSGEN_GLS3DCABLE_EXPORT 
void AlphaMode( 
int mode );
 
  310     virtual GLSGEN_GLS3DCABLE_EXPORT 
int  AlphaMode( 
void );
 
  312     virtual GLSGEN_GLS3DCABLE_EXPORT 
void CullBackFace( 
const bool mode );
 
  313     virtual GLSGEN_GLS3DCABLE_EXPORT 
bool CullBackFace( 
void );
 
  316     virtual GLSGEN_GLS3DCABLE_EXPORT 
void LightingEnabled( 
bool lighting );
 
  327     virtual GLSGEN_GLS3DCABLE_EXPORT 
void TextureRepeat( 
const int rep );
 
  349     GLSGEN_GLS3DCABLE_EXPORT 
void Flexibility( 
const float& value );
 
  364     GLSGEN_GLS3DCABLE_EXPORT 
void NumberOfSegments( 
const unsigned int& value );
 
  379     GLSGEN_GLS3DCABLE_EXPORT 
void NumberOfSides( 
const unsigned int& value );
 
  391     GLSGEN_GLS3DCABLE_EXPORT 
void Radius( 
const float& value );
 
  396     GLSGEN_GLS3DCABLE_EXPORT 
float Radius();
 
  405     GLSGEN_GLS3DCABLE_EXPORT 
void Length( 
const float& value );
 
  410     GLSGEN_GLS3DCABLE_EXPORT 
float Length();
 
  437     GLSGEN_GLS3DCABLE_EXPORT 
void SlackPct( 
unsigned int section, 
double pct );
 
  445     GLSGEN_GLS3DCABLE_EXPORT 
double SlackPct( 
unsigned int section );
 
  470     GLSGEN_GLS3DCABLE_EXPORT 
void Gravity( 
const bool& value );
 
  489     void AllocateLineVertices();
 
  518     bool GlobalHit( 
DisplayObject* root, 
float x, 
float y, 
float z, 
float scale, 
const Vector& directionVector, 
float& collideDist, 
Vector* collisionPoint );
 
  526     bool RecalculateCable();
 
  533     void TubeGeneration();
 
  637     int _lineVertsPerSection;
 
  641     float _realCableLength;
 
  645     Gls3DCable& operator=( 
const Gls3DCable& rhs ) DISTI_SPECIAL_MEM_FUN_DELETE;
 
  646     Gls3DCable( 
const Gls3DCable& src ) DISTI_SPECIAL_MEM_FUN_DELETE;
 
float _radius
Definition: gls_3d_cable.h:562
virtual int LineStippleMultiplier(void)
virtual DisplayObject * CloneObject(bool generateNames=false)
float _length
Definition: gls_3d_cable.h:570
virtual void SetColor(const GlsColor &color)
#define DISTI_DEPRECATED(msg)
Defines whether this compiler supports the C++14 deprecated attribute. 
Definition: gls_cpp_lang_support.h:436
virtual bool LightingEnabled()
virtual int PolygonMode(void)
virtual int AlphaMode(void)
virtual void Calculate(double time)
Definition: dynamic_array.h:66
The disti::Group class. Implements groups of objects. 
Class to contain current OpenGL view, projection and draw matrices. 
Definition: util.h:296
bool _needTubeGeneration
Definition: gls_3d_cable.h:580
Definition: gls_3d_cable.h:183
The Polygon class. Implements Polygons. 
Definition: glpolygon.h:55
virtual int TextureMappingTechnique(void)
void Normalize(void)
Definition: gls_3d_cable.h:133
virtual GlsColor GetBlendColor(void)
virtual DistiAttributeBase & Resource(const char *name)
unsigned int NumberOfSegments()
bool BETWEEN(const X &x, const X1 &x1, const X2 &x2)
Definition: util.h:125
virtual int LineStipplePattern(void)
bool operator==(const VertexNoColor &arg) const 
Definition: gls_3d_cable.h:161
The disti::GLPolygon class. Implements Polygons. 
unsigned int _numberOfSegments
Definition: gls_3d_cable.h:548
bool operator!=(const VertexNoColor &arg) const 
Definition: gls_3d_cable.h:171
virtual InterfaceListType * GetCppInterfaceDescription(InterfaceListType *addToThisList=NULL)
Gls3DCable(bool generateInstance=false)
VertexNoColor()
Definition: vertex.h:90
virtual bool Hit(float x, float y, float z, float scale, const Vector &directionVector, Vector *collisionPoint)
void NearZero()
Definition: gls_3d_cable.h:112
GlsMatrixAffineD _cableDcs
Definition: gls_3d_cable.h:626
bool _inCableRecalc
Definition: gls_3d_cable.h:585
DynamicDoubleArray _sectionSlackPct
Definition: gls_3d_cable.h:618
The glTriMesh class. Implements Triangle Meshes. 
Definition: gltrimesh.h:92
std::vector< Vector > _endPointPos
Definition: gls_3d_cable.h:604
virtual int DepthTest(void)
virtual float LineWidth(void)
float _flexibility
Definition: gls_3d_cable.h:540
GLTriMesh _mesh
Definition: gls_3d_cable.h:597
unsigned int SlackSectionCount() const 
std::vector< GlsMatrixAffineD > _endPointOri
Definition: gls_3d_cable.h:611
virtual void CopyProperties(DisplayObject *src)
bool _needCableRecalc
Definition: gls_3d_cable.h:575
unsigned int _numberOfSides
Definition: gls_3d_cable.h:556
virtual void SetValue(int spec, va_list &args)
Definition: disti_metadata.h:183
unsigned int NumberOfSides()
Definition: gls_color.h:53
virtual void SetAvailableAttributes(unsigned int value)
virtual DisplayObject * Pick3D(const Vector &winLoc, const Vector &logicalCoords, float scale, const Vector &directionVector, Vector &collisionWinLoc, const OpenGLMatrices &parentDrawn)
virtual GlsColor GetColor(void)
virtual void CalculateTextureCoordinates(void)
virtual void SetBlendColor(const GlsColor &color)
virtual bool TextureRepeat(void)
virtual int TextureMinificationFilter(void)
virtual void PreDraw(const OpenGLMatrices &parentMatrices, Culler &culler)
bool Gravity()
Definition: gls_3d_cable.h:478
virtual int Shading(void)
The disti::GlsQuaternion class. 
virtual bool CullBackFace(void)
void SlackPct(unsigned int section, double pct)
float Magnitude() const 
Definition: vertex.h:327
virtual void GetCppInterfaceDescriptionFree(InterfaceListType *array)
GLPolygon _line
Definition: gls_3d_cable.h:591
Definition: gls_resources.h:50
Macros and helper code to determine what subset of C++11/14/17 is available. 
ECollisionStyle _collisionStyle
Definition: gls_3d_cable.h:631
Definition: bmpimage.h:46
virtual int PolygonEnd(void)
virtual GlsColor GetFillColor(void)
virtual void GetResources(std::ostream &outstr, GlsResourceFilter *filter)
virtual void SetFillColor(const GlsColor &color)
virtual DisplayObject * handle(DisplayEvent *ev)
Definition: gls_3d_cable.h:92
Definition: gls_matrix_affine.h:60
virtual bool AntiAlias(void)
The disti::GLTriMesh class. Implements Triangle Meshes. 
virtual int TextureMagnificationFilter(void)