244 lines
8.6 KiB
C++
244 lines
8.6 KiB
C++
#pragma once
|
|
#include "acgi.h"
|
|
|
|
class AecUnknownViewportDraw;
|
|
class AecUnknownViewportGeometry : public AcGiViewportGeometry
|
|
{
|
|
public:
|
|
ACRX_DECLARE_MEMBERS(AecUnknownViewportGeometry);
|
|
|
|
AecUnknownViewportGeometry(void);
|
|
AecUnknownViewportGeometry(AecUnknownViewportDraw* pWorldDraw);
|
|
~AecUnknownViewportGeometry(void);
|
|
|
|
void setToFindDrawingFrame();
|
|
void setToFindForESignTrue();
|
|
|
|
virtual void getModelToWorldTransform(AcGeMatrix3d &pMatrix) const;
|
|
virtual void getWorldToModelTransform(AcGeMatrix3d &pMatrix) const;
|
|
virtual void setExtents(AcGePoint3d *pNewExtents) const;
|
|
|
|
virtual Adesk::Boolean circle(const AcGePoint3d& center,
|
|
const double radius,
|
|
const AcGeVector3d& normal
|
|
) const;
|
|
|
|
virtual Adesk::Boolean circle(const AcGePoint3d& pt1,
|
|
const AcGePoint3d& pt2,
|
|
const AcGePoint3d& pt3
|
|
) const;
|
|
|
|
virtual Adesk::Boolean circularArc(const AcGePoint3d& center,
|
|
const double radius,
|
|
const AcGeVector3d& normal,
|
|
const AcGeVector3d& startVector,
|
|
const double sweepAngle,
|
|
const AcGiArcType arcType = kAcGiArcSimple
|
|
) const;
|
|
|
|
virtual Adesk::Boolean circularArc(const AcGePoint3d& start,
|
|
const AcGePoint3d& point,
|
|
const AcGePoint3d& end,
|
|
const AcGiArcType arcType = kAcGiArcSimple
|
|
) const;
|
|
|
|
#if (ARX>=18)
|
|
virtual Adesk::Boolean polyline(const AcGiPolyline& polylineObj) const;
|
|
virtual Adesk::Boolean polyPolyline( Adesk::UInt32 nbPolylines,const AcGiPolyline* pPolylines) const ;
|
|
|
|
virtual Adesk::Boolean polyPolygon(const Adesk::UInt32 numPolygonIndices,
|
|
const Adesk::UInt32* numPolygonPositions,
|
|
const AcGePoint3d* polygonPositions,
|
|
const Adesk::UInt32* numPolygonPoints,
|
|
const AcGePoint3d* polygonPoints,
|
|
const AcCmEntityColor* outlineColors = NULL,
|
|
const AcGiLineType* outlineTypes = NULL,
|
|
const AcCmEntityColor* fillColors = NULL,
|
|
const AcCmTransparency* fillOpacities = NULL) const;
|
|
|
|
virtual Adesk::Boolean ellipticalArc(const AcGePoint3d& center,
|
|
const AcGeVector3d& normal,
|
|
double majorAxisLength,
|
|
double minorAxisLength,
|
|
double startDegreeInRads,
|
|
double endDegreeInRads,
|
|
double tiltDegreeInRads,
|
|
AcGiArcType arcType = kAcGiArcSimple
|
|
) const;
|
|
virtual Adesk::Boolean image( const AcGiImageBGRA32& imageSource,
|
|
const AcGePoint3d& position,
|
|
const AcGeVector3d& u, //orientation and magnitude of width
|
|
const AcGeVector3d& v, //orientation and magnitude of height
|
|
TransparencyMode transparencyMode = kTransparency8Bit
|
|
) const;
|
|
|
|
virtual Adesk::Boolean rowOfDots( int count,
|
|
const AcGePoint3d& start,
|
|
const AcGeVector3d& step
|
|
) const;
|
|
#endif
|
|
|
|
#ifdef _WIN64
|
|
virtual Adesk::Boolean polyline(const Adesk::UInt32 nbPoints,
|
|
const AcGePoint3d* pVertexList,
|
|
const AcGeVector3d* pNormal = NULL,
|
|
Adesk::LongPtr lBaseSubEntMarker = -1) const;
|
|
#else
|
|
virtual Adesk::Boolean polyline(const Adesk::UInt32 nbPoints,
|
|
const AcGePoint3d* pVertexList,
|
|
const AcGeVector3d* pNormal = NULL,
|
|
Adesk::Int32 lBaseSubEntMarker = -1) const;
|
|
#endif
|
|
virtual Adesk::Boolean polygon(const Adesk::UInt32 nbPoints,
|
|
const AcGePoint3d* pVertexList
|
|
) const;
|
|
|
|
#if ARX>16
|
|
virtual Adesk::Boolean mesh(const Adesk::UInt32 rows,
|
|
const Adesk::UInt32 columns,
|
|
const AcGePoint3d* pVertexList,
|
|
const AcGiEdgeData* pEdgeData = NULL,
|
|
const AcGiFaceData* pFaceData = NULL,
|
|
const AcGiVertexData* pVertexData = NULL,
|
|
const bool bAutoGenerateNormals = true
|
|
) const;
|
|
|
|
virtual Adesk::Boolean shell(const Adesk::UInt32 nbVertex,
|
|
const AcGePoint3d* pVertexList,
|
|
const Adesk::UInt32 faceListSize,
|
|
const Adesk::Int32* pFaceList,
|
|
const AcGiEdgeData* pEdgeData = NULL,
|
|
const AcGiFaceData* pFaceData = NULL,
|
|
const AcGiVertexData* pVertexData = NULL,
|
|
const struct resbuf* pResBuf = NULL,
|
|
const bool bAutoGenerateNormals = true
|
|
) const;
|
|
#else
|
|
virtual Adesk::Boolean mesh(const Adesk::UInt32 rows,
|
|
const Adesk::UInt32 columns,
|
|
const AcGePoint3d* pVertexList,
|
|
const AcGiEdgeData* pEdgeData = NULL,
|
|
const AcGiFaceData* pFaceData = NULL,
|
|
const AcGiVertexData* pVertexData = NULL
|
|
) const;
|
|
|
|
virtual Adesk::Boolean shell(const Adesk::UInt32 nbVertex,
|
|
const AcGePoint3d* pVertexList,
|
|
const Adesk::UInt32 faceListSize,
|
|
const Adesk::Int32* pFaceList,
|
|
const AcGiEdgeData* pEdgeData = NULL,
|
|
const AcGiFaceData* pFaceData = NULL,
|
|
const AcGiVertexData* pVertexData = NULL,
|
|
const struct resbuf* pResBuf = NULL
|
|
) const;
|
|
#endif
|
|
|
|
virtual Adesk::Boolean text(const AcGePoint3d& position,
|
|
const AcGeVector3d& normal,
|
|
const AcGeVector3d& direction,
|
|
const double height,
|
|
const double width,
|
|
const double oblique,
|
|
const TCHAR* pMsg
|
|
) const;
|
|
|
|
virtual Adesk::Boolean text(const AcGePoint3d& position,
|
|
const AcGeVector3d& normal,
|
|
const AcGeVector3d& direction,
|
|
const TCHAR* pMsg,
|
|
const Adesk::Int32 length,
|
|
const Adesk::Boolean raw,
|
|
const AcGiTextStyle &pTextStyle
|
|
) const;
|
|
|
|
virtual Adesk::Boolean xline(const AcGePoint3d& one_xline_point,
|
|
const AcGePoint3d& a_different_xline_point
|
|
) const;
|
|
|
|
virtual Adesk::Boolean ray(const AcGePoint3d& rays_starting_point,
|
|
const AcGePoint3d& a_different_ray_point
|
|
) const;
|
|
|
|
virtual Adesk::Boolean pline(const AcDbPolyline& lwBuf,
|
|
Adesk::UInt32 fromIndex = 0,
|
|
Adesk::UInt32 numSegs = 0
|
|
) const;
|
|
|
|
virtual Adesk::Boolean pushModelTransform(const AcGeVector3d & vNormal);// Uses arbitrary Axis algorythm
|
|
virtual Adesk::Boolean pushModelTransform(const AcGeMatrix3d & xMat);
|
|
virtual Adesk::Boolean popModelTransform();
|
|
|
|
#if (ARX>=18)
|
|
virtual AcGeMatrix3d pushPositionTransform (AcGiPositionTransformBehavior behavior, const AcGePoint3d& offset);
|
|
virtual AcGeMatrix3d pushPositionTransform (AcGiPositionTransformBehavior behavior, const AcGePoint2d& offset);
|
|
virtual AcGeMatrix3d pushScaleTransform (AcGiScaleTransformBehavior behavior, const AcGePoint3d& extents);
|
|
virtual AcGeMatrix3d pushScaleTransform (AcGiScaleTransformBehavior behavior, const AcGePoint2d& extents);
|
|
virtual AcGeMatrix3d pushOrientationTransform (AcGiOrientationTransformBehavior behavior);
|
|
#endif
|
|
|
|
virtual Adesk::Boolean draw(AcGiDrawable*) const;
|
|
// If you push a clip boundary onto the stack you must pop it;
|
|
virtual Adesk::Boolean pushClipBoundary(AcGiClipBoundary * pBoundary);
|
|
/*NEW*/virtual void popClipBoundary();
|
|
|
|
virtual Adesk::Boolean polylineEye(const Adesk::UInt32 nbPoints,const AcGePoint3d* pPoints) const;
|
|
|
|
virtual Adesk::Boolean polygonEye(const Adesk::UInt32 nbPoints,const AcGePoint3d* pPoints) const;
|
|
|
|
virtual Adesk::Boolean polylineDc(const Adesk::UInt32 nbPoints,const AcGePoint3d* pPoints) const;
|
|
|
|
virtual Adesk::Boolean polygonDc(const Adesk::UInt32 nbPoints,const AcGePoint3d* pPoints) const;
|
|
|
|
virtual Adesk::Boolean rasterImageDc(
|
|
const AcGePoint3d& origin,
|
|
const AcGeVector3d& u,
|
|
const AcGeVector3d& v,
|
|
const AcGeMatrix2d& pixelToDc,
|
|
AcDbObjectId entityId,
|
|
AcGiImageOrg imageOrg,
|
|
Adesk::UInt32 imageWidth,
|
|
Adesk::UInt32 imageHeight,
|
|
Adesk::Int16 imageColorDepth,
|
|
Adesk::Boolean transparency,
|
|
ImageSource source,
|
|
const AcGeVector3d& unrotatedU,
|
|
const AcGiImageOrg origionalImageOrg,
|
|
const AcGeMatrix2d& unrotatedPixelToDc,
|
|
const Adesk::UInt32 unrotatedImageWidth,
|
|
const Adesk::UInt32 unrotatedImageHeight
|
|
) const ;
|
|
|
|
virtual Adesk::Boolean ownerDrawDc(
|
|
long vpnumber,
|
|
long left,
|
|
long top,
|
|
long right,
|
|
long bottom,
|
|
const OwnerDraw* pOwnerDraw
|
|
) const;
|
|
|
|
#if ARX > 19
|
|
virtual Adesk::Boolean edge(const AcArray<AcGeCurve2d*>& edges) const { return Adesk::kFalse; };
|
|
#endif
|
|
|
|
#if ARX > 20
|
|
virtual Adesk::Boolean ownerDrawDc(
|
|
Adesk::Int32 vpnumber,
|
|
Adesk::Int32 left,
|
|
Adesk::Int32 top,
|
|
Adesk::Int32 right,
|
|
Adesk::Int32 bottom,
|
|
const OwnerDraw* pOwnerDraw
|
|
) const
|
|
{
|
|
return Adesk::kFalse;
|
|
}
|
|
#endif
|
|
|
|
private:
|
|
|
|
bool m_bToFindDrawingFrame;
|
|
bool m_bToFindForESignTrue;
|
|
AcGeMatrix3d m_lastXForm;
|
|
AecUnknownViewportDraw* mpCustomWorldDraw;
|
|
}; |