Go to the documentation of this file.
6 #ifndef CNOID_UTIL_SCENE_DRAWABLES_H
7 #define CNOID_UTIL_SCENE_DRAWABLES_H
11 #include <cnoid/stdx/variant>
13 #include <initializer_list>
14 #include "exportdecl.h"
27 template<
typename Derived>
void setDiffuseColor(
const Eigen::MatrixBase<Derived>& c) {
28 diffuseColor_ = c.template cast<Vector3f::Scalar>(); }
30 template<
typename Derived>
void setEmissiveColor(
const Eigen::MatrixBase<Derived>& c) {
31 emissiveColor_ = c.template cast<Vector3f::Scalar>(); }
34 template<
typename Derived>
void setSpecularColor(
const Eigen::MatrixBase<Derived>& c) {
35 specularColor_ = c.template cast<Vector3f::Scalar>(); }
41 [[deprecated(
"Use specularExponent")]]
42 float shininess()
const;
45 [[deprecated(
"Use setSpecularExponent")]]
46 void setShininess(
float s);
55 Vector3f diffuseColor_;
56 Vector3f emissiveColor_;
57 Vector3f specularColor_;
58 float ambientIntensity_;
60 float specularExponent_;
71 SgImage(std::shared_ptr<Image> sharedImage);
78 bool empty()
const {
return image_->empty(); }
80 unsigned char* pixels();
81 const unsigned char*
pixels()
const {
return image_->pixels(); }
82 const unsigned char*
constPixels()
const {
return image_->pixels(); }
84 int width()
const {
return image_->width(); }
85 int height()
const {
return image_->height(); }
88 void setSize(
int width,
int height,
int nComponents);
89 void setSize(
int width,
int height);
95 std::shared_ptr<Image> image_;
104 EIGEN_MAKE_ALIGNED_OPERATOR_NEW
110 template<
typename Derived>
void setCenter(
const Eigen::MatrixBase<Derived>& c) {
111 center_ = c.template cast<Vector3::Scalar>(); }
115 template<
typename Derived>
void setScale(
const Eigen::MatrixBase<Derived>& c) {
116 scale_ = c.template cast<Vector2::Scalar>(); }
118 template<
typename Derived>
void setTranslation(
const Eigen::MatrixBase<Derived>& c) {
119 translation_ = c.template cast<Vector3::Scalar>(); }
141 virtual int numChildObjects()
const override;
142 virtual SgObject* childObject(
int index)
override;
151 void setRepeat(
bool s,
bool t) { repeatS_ = s; repeatT_ = t; }
172 typedef std::vector<T> Container;
190 template<
class Element>
192 values.reserve(org.size());
193 for(
typename std::vector<Element>::const_iterator p = org.begin(); p != org.end(); ++p){
194 values.push_back(p->template cast<typename T::Scalar>());
211 bool empty()
const {
return values.empty(); }
218 T&
front() {
return values.front(); }
219 const T&
front()
const {
return values.front(); }
220 T&
back() {
return values.back(); }
221 const T&
back()
const {
return values.back(); }
226 template<
class... Args>
void emplace_back(Args&&... args) { values.emplace_back(args...); }
263 virtual int numChildObjects()
const override;
264 virtual SgObject* childObject(
int index)
override;
267 virtual void updateBoundingBox();
271 bool hasVertices()
const {
return (vertices_ && !vertices_->empty()); }
277 bool hasNormals()
const {
return (normals_ && !normals_->empty()); }
283 bool hasColors()
const {
return (colors_ && !colors_->empty()); }
289 bool hasTexCoords()
const {
return (texCoords_ && !texCoords_->empty()); }
342 virtual void updateBoundingBox()
override;
351 int numTriangles()
const {
return static_cast<int>(faceVertexIndices_.size()) / 3; }
357 return TriangleRef(&faceVertexIndices_[index * 3]);
366 const int i = index * 3;
367 faceVertexIndices_[i+0] = v0;
368 faceVertexIndices_[i+1] = v1;
369 faceVertexIndices_[i+2] = v2;
373 const size_t s = faceVertexIndices_.size();
374 faceVertexIndices_.resize(s + 3);
382 faceVertexIndices_.reserve(faceVertexIndices_.size() + il.size() * 3);
384 for(
int i=0; i < 3; ++i){
385 faceVertexIndices_.push_back(v[i]);
391 faceVertexIndices_.push_back(v0);
392 faceVertexIndices_.push_back(v1);
393 faceVertexIndices_.push_back(v2);
408 CYLINDER = CylinderType,
410 CAPSULE = CapsuleType
424 Sphere(
double radius) : radius(radius) { }
431 radius(radius), height(height), top(true), bottom(true), side(true) { }
441 Cone(
double radius,
double height) :
442 radius(radius), height(height), bottom(true), side(true) { }
452 radius(radius), height(height) { }
457 typedef stdx::variant<Mesh, Box, Sphere, Cylinder, Cone, Capsule>
Primitive;
461 const int primitiveType()
const {
return stdx::get_variant_index(primitive_); }
462 template<
class TPrimitive>
const TPrimitive&
primitive()
const {
return stdx::get<TPrimitive>(primitive_); }
475 ExtraDivisionPreferred = 0,
479 ExtraDivisionAll = ExtraDivisionX | ExtraDivisionY | ExtraDivisionZ
484 void transform(
const Affine3& T);
485 void transform(
const Affine3f& T);
486 void translate(
const Vector3f& translation);
487 void rotate(
const Matrix3f& R);
493 Primitive primitive_;
494 short divisionNumber_;
495 short extraDivisionNumber_;
496 short extraDivisionMode_;
508 virtual void updateBoundingBox()
override;
517 [[deprecated(
"Use faceVertexIndices")]]
519 [[deprecated(
"Use faceVertexIndices")]]
536 virtual int numChildObjects()
const override;
537 virtual SgObject* childObject(
int index)
override;
538 virtual const BoundingBox& boundingBox()
const override;
539 virtual const BoundingBox& untransformedBoundingBox()
const override;
544 SgMesh* getOrCreateMesh();
578 virtual int numChildObjects()
const override;
579 virtual SgObject* childObject(
int index)
override;
581 virtual const BoundingBox& boundingBox()
const override;
582 virtual const BoundingBox& untransformedBoundingBox()
const override;
583 void updateBoundingBox();
587 bool hasVertices()
const {
return (vertices_ && !vertices_->empty()); }
598 bool hasNormals()
const {
return (normals_ && !normals_->empty()); }
607 bool hasColors()
const {
return (colors_ && !colors_->empty()); }
662 int numLines()
const {
return static_cast<int>(lineVertices_.size()) / 2; }
669 return LineRef(&lineVertices_[index * 2]);
678 const int i = index * 2;
679 lineVertices_[i+0] = v0;
680 lineVertices_[i+1] = v1;
684 const size_t s = lineVertices_.size();
685 lineVertices_.resize(s + 2);
686 return LineRef(&lineVertices_[s]);
690 lineVertices_.push_back(v0);
691 lineVertices_.push_back(v1);
695 colorIndices().resize(n * 2);
699 colorIndices()[lineIndex * 2 ] = colorIndex;
700 colorIndices()[lineIndex * 2 + 1] = colorIndex;
753 virtual void calcViewVolume(
double viewportWidth,
double viewportHeight,
ViewVolume& io_volume);
T & operator[](size_type i)
Definition: SceneDrawables.h:214
SgNormalArrayPtr normals_
Definition: SceneDrawables.h:323
void setPointSize(double size)
Definition: SceneDrawables.h:635
Eigen::Vector2d Vector2
Definition: EigenTypes.h:55
Definition: SceneDrawables.h:66
void setExtraDivisionNumber(int n)
Definition: SceneDrawables.h:471
const SgTextureTransform * textureTransform() const
Definition: SceneDrawables.h:154
void setScale(const Eigen::MatrixBase< Derived > &c)
Definition: SceneDrawables.h:115
ref_ptr< SgTextureTransform > SgTextureTransformPtr
Definition: SceneDrawables.h:131
float creaseAngle_
Definition: SceneDrawables.h:329
Eigen::Map< const Array3i > ConstTriangleRef
Definition: SceneDrawables.h:360
const SgImage * image() const
Definition: SceneDrawables.h:145
bool hasVertices() const
Definition: SceneDrawables.h:587
Definition: SceneDrawables.h:427
T & front()
Definition: SceneDrawables.h:218
ref_ptr< SgTexture > SgTexturePtr
Definition: SceneDrawables.h:167
void clearLines()
Definition: SceneDrawables.h:665
void reserveNumTriangles(int n)
Definition: SceneDrawables.h:353
void setTransparency(float t)
Definition: SceneDrawables.h:49
Definition: SceneDrawables.h:448
const SgIndexArray & normalIndices() const
Definition: SceneDrawables.h:604
const TPrimitive & primitive() const
Definition: SceneDrawables.h:462
void addTriangles(std::initializer_list< Array3i > il)
Definition: SceneDrawables.h:381
ref_ptr< SgImage > SgImagePtr
Definition: SceneDrawables.h:98
const SgIndexArray & lineVertices() const
Definition: SceneDrawables.h:659
Container::pointer pointer
Definition: SceneDrawables.h:181
const SgIndexArray & polygonVertices() const
Definition: SceneDrawables.h:520
Eigen::Vector3d Vector3
Definition: EigenTypes.h:57
bool empty() const
Definition: SceneDrawables.h:211
void setNumTriangles(int n)
Definition: SceneDrawables.h:352
Cone(double radius, double height)
Definition: SceneDrawables.h:441
ref_ptr< SgPolygonMesh > SgPolygonMeshPtr
Definition: SceneDrawables.h:526
ref_ptr< SgMesh > SgMeshPtr
Definition: SceneDrawables.h:499
const Vector3f & emissiveColor() const
Definition: SceneDrawables.h:29
void setBoundingBox(const BoundingBoxf &bb)
Definition: SceneDrawables.h:269
const SgIndexArray & normalIndices() const
Definition: SceneDrawables.h:302
ref_ptr< SgLineSet > SgLineSetPtr
Definition: SceneDrawables.h:719
Cone()
Definition: SceneDrawables.h:440
int extraDivisionMode() const
Definition: SceneDrawables.h:481
Definition: SceneDrawables.h:336
void reserveNumLines(int n)
Definition: SceneDrawables.h:664
bool bottom
Definition: SceneDrawables.h:445
SgColorArrayPtr colors_
Definition: SceneDrawables.h:325
const Vector2 & translation() const
Definition: SceneDrawables.h:117
Container::size_type size_type
Definition: SceneDrawables.h:177
stdx::variant< Mesh, Box, Sphere, Cylinder, Cone, Capsule > Primitive
Definition: SceneDrawables.h:457
const SgMaterial * material() const
Definition: SceneDrawables.h:594
SgMesh * mesh()
Definition: SceneDrawables.h:541
void setRotation(double rotation)
Definition: SceneDrawables.h:113
Definition: SceneDrawables.h:569
ref_ptr< SgColorArray > SgColorArrayPtr
Definition: SceneDrawables.h:247
SgIndexArray & triangleVertices()
Definition: SceneDrawables.h:348
iterator erase(iterator first, iterator last)
Definition: SceneDrawables.h:229
Container::const_reference const_reference
Definition: SceneDrawables.h:180
const Vector3f & specularColor() const
Definition: SceneDrawables.h:33
Definition: SceneGraph.h:220
const SgIndexArray & texCoordIndices() const
Definition: SceneDrawables.h:310
Sphere(double radius)
Definition: SceneDrawables.h:424
void setCreaseAngle(float angle)
Definition: SceneDrawables.h:314
ref_ptr< SgVertexArray > SgVertexArrayPtr
Definition: SceneDrawables.h:241
double height
Definition: SceneDrawables.h:444
void emplace_back(Args &&... args)
Definition: SceneDrawables.h:226
Box(Vector3 size)
Definition: SceneDrawables.h:418
Definition: SceneDrawables.h:653
double radius
Definition: SceneDrawables.h:432
SgVectorArray< Vector3f > SgVertexArray
Definition: SceneDrawables.h:240
bool hasNormals() const
Definition: SceneDrawables.h:277
void setSpecularColor(const Eigen::MatrixBase< Derived > &c)
Definition: SceneDrawables.h:34
Vector3 size
Definition: SceneDrawables.h:419
TriangleRef addTriangle()
Definition: SceneDrawables.h:379
float specularExponent() const
Definition: SceneDrawables.h:37
int width() const
Definition: SceneDrawables.h:84
ConstTriangleRef triangle(int index) const
Definition: SceneDrawables.h:361
BoundingBox bbox
Definition: SceneDrawables.h:320
SgIndexArray & polygonVertices()
Definition: SceneDrawables.h:518
double rotation() const
Definition: SceneDrawables.h:112
void setSpecularExponent(float e)
Definition: SceneDrawables.h:38
SgIndexArray & lineVertices()
Definition: SceneDrawables.h:660
Eigen::Map< const Array2i > ConstLineRef
Definition: SceneDrawables.h:672
void resize(size_type s, const T &v)
Definition: SceneDrawables.h:210
Definition: SceneDrawables.h:170
Scalar * data()
Definition: SceneDrawables.h:222
void setBoundingBox(const BoundingBox &bb)
Definition: SceneDrawables.h:268
size_type size() const
Definition: SceneDrawables.h:208
SgVectorArray< T > & operator=(const SgVectorArray< T > &rhs)
Definition: SceneDrawables.h:200
void clear()
Definition: SceneDrawables.h:230
SgVectorArray< Vector3f > SgColorArray
Definition: SceneDrawables.h:246
double height
Definition: SceneDrawables.h:454
SgIndexArray & faceVertexIndices()
Definition: SceneDrawables.h:297
SgIndexArray colorIndices_
Definition: SceneDrawables.h:326
iterator insert(const_iterator pos, std::initializer_list< T > il)
Definition: SceneDrawables.h:224
bool side
Definition: SceneDrawables.h:436
const BoundingBox & boundingBox() const
Definition: SceneDrawables.h:266
ref_ptr< SgPointSet > SgPointSetPtr
Definition: SceneDrawables.h:650
void addTriangle(int v0, int v1, int v2)
Definition: SceneDrawables.h:390
int divisionNumber() const
The value is -1 when the division number is not explicitly specified.
Definition: SceneDrawables.h:466
Definition: BoundingBox.h:61
bool hasNormals() const
Definition: SceneDrawables.h:598
double radius
Definition: SceneDrawables.h:425
bool hasTriangles() const
Definition: SceneDrawables.h:350
const unsigned char * pixels() const
Definition: SceneDrawables.h:81
void setAmbientIntensity(float intensity)
Definition: SceneDrawables.h:25
SgVectorArray(const std::vector< Element > &org)
Definition: SceneDrawables.h:191
const_iterator end() const
Definition: SceneDrawables.h:207
Container::const_iterator const_iterator
Definition: SceneDrawables.h:176
float transparency() const
Definition: SceneDrawables.h:48
const SgMaterial * material() const
Definition: SceneDrawables.h:547
SgVectorArray()
Definition: SceneDrawables.h:185
bool empty() const
Definition: SceneDrawables.h:78
SgVectorArray(std::initializer_list< T > init)
Definition: SceneDrawables.h:188
bool top
Definition: SceneDrawables.h:434
void setCenter(const Eigen::MatrixBase< Derived > &c)
Definition: SceneDrawables.h:110
const SgMesh * mesh() const
Definition: SceneDrawables.h:542
bool hasTexCoordIndices() const
Definition: SceneDrawables.h:309
SgTexture * texture()
Definition: SceneDrawables.h:551
@ ConeType
Definition: SceneDrawables.h:401
SgVertexArrayPtr vertices_
Definition: SceneDrawables.h:321
bool isSolid() const
Definition: SceneDrawables.h:316
SgTextureTransform * textureTransform()
Definition: SceneDrawables.h:153
iterator begin()
Definition: SceneDrawables.h:204
bool hasTexCoords() const
Definition: SceneDrawables.h:289
void setRepeat(bool s, bool t)
Definition: SceneDrawables.h:151
Definition: SceneDrawables.h:415
float creaseAngle() const
Definition: SceneDrawables.h:313
ConstLineRef line(int index) const
Definition: SceneDrawables.h:673
void setPrimitive(Primitive prim)
Definition: SceneDrawables.h:463
LineRef addLine()
Definition: SceneDrawables.h:683
double pointSize() const
Definition: SceneDrawables.h:640
void setEmissiveColor(const Eigen::MatrixBase< Derived > &c)
Definition: SceneDrawables.h:30
const SgIndexArray & colorIndices() const
Definition: SceneDrawables.h:613
const Image & constImage() const
Definition: SceneDrawables.h:76
double radius
Definition: SceneDrawables.h:453
ref_ptr< SgNormalArray > SgNormalArrayPtr
Definition: SceneDrawables.h:244
SgTexCoordArrayPtr texCoords_
Definition: SceneDrawables.h:327
double height
Definition: SceneDrawables.h:433
bool hasNormalIndices() const
Definition: SceneDrawables.h:301
void setTranslation(const Eigen::MatrixBase< Derived > &c)
Definition: SceneDrawables.h:118
iterator erase(iterator p)
Definition: SceneDrawables.h:228
ref_ptr< SgShape > SgShapePtr
Definition: SceneDrawables.h:566
void setDivisionNumber(int n)
Definition: SceneDrawables.h:467
bool repeatS() const
Definition: SceneDrawables.h:149
double zNear
Definition: SceneDrawables.h:749
PrimitiveType
Definition: SceneDrawables.h:396
SgVectorArray(const SgVectorArray &org)
Definition: SceneDrawables.h:198
int numComponents() const
Definition: SceneDrawables.h:86
void shrink_to_fit()
Definition: SceneDrawables.h:231
void reserve(size_type s)
Definition: SceneDrawables.h:212
ExtraDivisionMode
This mode is only valid for the box primitive.
Definition: SceneDrawables.h:474
Container::const_pointer const_pointer
Definition: SceneDrawables.h:182
Capsule()
Definition: SceneDrawables.h:450
const unsigned char * constPixels() const
Definition: SceneDrawables.h:82
const SgNormalArray * normals() const
Definition: SceneDrawables.h:600
const SgVertexArray * vertices() const
Definition: SceneDrawables.h:273
Definition: SceneDrawables.h:722
@ MeshType
Definition: SceneDrawables.h:397
const SgVertexArray * vertices() const
Definition: SceneDrawables.h:589
int numLines() const
Definition: SceneDrawables.h:662
const SgIndexArray & colorIndices() const
Definition: SceneDrawables.h:306
SgNormalArray * normals()
Definition: SceneDrawables.h:278
ref_ptr< SgTexCoordArray > SgTexCoordArrayPtr
Definition: SceneDrawables.h:250
Container::reference reference
Definition: SceneDrawables.h:179
const T & front() const
Definition: SceneDrawables.h:219
SgColorArray * colors()
Definition: SceneDrawables.h:284
Definition: SceneDrawables.h:502
T & at(size_type i)
Definition: SceneDrawables.h:216
const T & operator[](size_type i) const
Definition: SceneDrawables.h:215
Definition: AbstractSceneLoader.h:11
void addLine(int v0, int v1)
Definition: SceneDrawables.h:689
iterator end()
Definition: SceneDrawables.h:206
Definition: CloneMap.h:13
SgVectorArray< Vector3f > SgNormalArray
Definition: SceneDrawables.h:243
@ SphereType
Definition: SceneDrawables.h:399
Definition: SceneDrawables.h:744
SgVertexArray * vertices()
Definition: SceneDrawables.h:272
TriangleRef newTriangle()
Definition: SceneDrawables.h:372
Capsule(double radius, double height)
Definition: SceneDrawables.h:451
Definition: SceneDrawables.h:413
SgIndexArray & colorIndices()
Definition: SceneDrawables.h:307
double top
Definition: SceneDrawables.h:748
T::Scalar Scalar
Definition: SceneDrawables.h:183
Definition: SceneDrawables.h:101
const SgColorArray * colors() const
Definition: SceneDrawables.h:285
Definition: SceneDrawables.h:629
void setLineColor(int lineIndex, int colorIndex)
Definition: SceneDrawables.h:698
const Vector3f & diffuseColor() const
Definition: SceneDrawables.h:26
int numTriangles() const
Definition: SceneDrawables.h:351
SgColorArray * colors()
Definition: SceneDrawables.h:608
double left
Definition: SceneDrawables.h:745
LineRef line(int index)
Definition: SceneDrawables.h:668
SgIndexArray & normalIndices()
Definition: SceneDrawables.h:605
void setExtraDivisionMode(int mode)
Definition: SceneDrawables.h:482
SgIndexArray & texCoordIndices()
Definition: SceneDrawables.h:311
Container::value_type value_type
Definition: SceneDrawables.h:178
SgVectorArray(const std::vector< T > &org)
Definition: SceneDrawables.h:187
SgVectorArray(size_t size)
Definition: SceneDrawables.h:186
void setNumLines(int n)
Definition: SceneDrawables.h:663
ref_ptr< SgViewportOverlay > SgViewportOverlayPtr
Definition: SceneDrawables.h:760
const Vector2 & center() const
Definition: SceneDrawables.h:109
bool hasColors() const
Definition: SceneDrawables.h:607
ref_ptr< SgMaterial > SgMaterialPtr
Definition: SceneDrawables.h:63
Definition: Referenced.h:54
bool hasVertices() const
Definition: SceneDrawables.h:271
ref_ptr< SgPlot > SgPlotPtr
Definition: SceneDrawables.h:626
int extraDivisionNumber() const
The value is -1 when the extra division number is not explicitly specified.
Definition: SceneDrawables.h:470
SgIndexArray & normalIndices()
Definition: SceneDrawables.h:303
void setTriangle(int index, int v0, int v1, int v2)
Definition: SceneDrawables.h:365
Eigen::Map< Array2i > LineRef
Definition: SceneDrawables.h:667
float ambientIntensity() const
Definition: SceneDrawables.h:24
Definition: SceneDrawables.h:421
void resizeColorIndicesForNumLines(int n)
Definition: SceneDrawables.h:694
Definition: SceneDrawables.h:255
ref_ptr< SgMeshBase > SgMeshBasePtr
Definition: SceneDrawables.h:333
SgTexCoordArray * texCoords()
Definition: SceneDrawables.h:290
double right
Definition: SceneDrawables.h:746
SgIndexArray & colorIndices()
Definition: SceneDrawables.h:614
const SgIndexArray & faceVertexIndices() const
Definition: SceneDrawables.h:296
double zFar
Definition: SceneDrawables.h:750
std::vector< int > SgIndexArray
Definition: SceneDrawables.h:252
const SgTexCoordArray * texCoords() const
Definition: SceneDrawables.h:291
float lineWidth() const
Definition: SceneDrawables.h:708
int height() const
Definition: SceneDrawables.h:85
SgMaterial * material()
Definition: SceneDrawables.h:546
const Vector2 & scale() const
Definition: SceneDrawables.h:114
Definition: SceneDrawables.h:529
SgIndexArray texCoordIndices_
Definition: SceneDrawables.h:328
const Image & image() const
Definition: SceneDrawables.h:75
SgVectorArray< Vector2f, Eigen::aligned_allocator< Vector2f > > SgTexCoordArray
Definition: SceneDrawables.h:249
const T & at(size_type i) const
Definition: SceneDrawables.h:217
SgIndexArray normalIndices_
Definition: SceneDrawables.h:324
const SgNormalArray * normals() const
Definition: SceneDrawables.h:279
Box()
Definition: SceneDrawables.h:417
bool bottom
Definition: SceneDrawables.h:435
void setSolid(bool on)
Definition: SceneDrawables.h:317
SgIndexArray faceVertexIndices_
Definition: SceneDrawables.h:322
Eigen::Map< Array3i > TriangleRef
Definition: SceneDrawables.h:355
void push_back(const T &v)
Definition: SceneDrawables.h:225
ref_ptr< SgOverlay > SgOverlayPtr
Definition: SceneDrawables.h:734
const SgColorArray * colors() const
Definition: SceneDrawables.h:609
T & back()
Definition: SceneDrawables.h:220
bool side
Definition: SceneDrawables.h:446
Container::iterator iterator
Definition: SceneDrawables.h:175
Definition: SceneGraph.h:28
@ CapsuleType
Definition: SceneDrawables.h:402
@ BoxType
Definition: SceneDrawables.h:398
bool repeatT() const
Definition: SceneDrawables.h:150
void setDiffuseColor(const Eigen::MatrixBase< Derived > &c)
Definition: SceneDrawables.h:27
const SgTexture * texture() const
Definition: SceneDrawables.h:552
bool hasFaceVertexIndices() const
Definition: SceneDrawables.h:295
Definition: SceneDrawables.h:737
bool isSolid_
Definition: SceneDrawables.h:330
bool hasColors() const
Definition: SceneDrawables.h:283
Definition: SceneDrawables.h:438
Definition: SceneDrawables.h:18
@ CylinderType
Definition: SceneDrawables.h:400
Definition: SceneGraph.h:157
virtual Referenced * doClone(CloneMap *) const override
Definition: SceneDrawables.h:234
double bottom
Definition: SceneDrawables.h:747
const SgIndexArray & triangleVertices() const
Definition: SceneDrawables.h:347
SgImage * image()
Definition: SceneDrawables.h:144
Eigen::Affine3d Affine3
Definition: EigenTypes.h:62
Definition: BoundingBox.h:17
SgNormalArray * normals()
Definition: SceneDrawables.h:599
void resize(size_type s)
Definition: SceneDrawables.h:209
void setLine(int index, int v0, int v1)
Definition: SceneDrawables.h:677
const T & back() const
Definition: SceneDrawables.h:221
SgMaterial * material()
Definition: SceneDrawables.h:593
bool hasColorIndices() const
Definition: SceneDrawables.h:305
void setLineWidth(float width)
Definition: SceneDrawables.h:703
SgVertexArray * vertices()
Definition: SceneDrawables.h:588
const Scalar * data() const
Definition: SceneDrawables.h:223
Cylinder(double radius, double height)
Definition: SceneDrawables.h:430
size_type capacity() const
Definition: SceneDrawables.h:213
Definition: SceneDrawables.h:134
TriangleRef triangle(int index)
Definition: SceneDrawables.h:356
void pop_back()
Definition: SceneDrawables.h:227
Cylinder()
Definition: SceneDrawables.h:429
double radius
Definition: SceneDrawables.h:443
const int primitiveType() const
Definition: SceneDrawables.h:461
const_iterator begin() const
Definition: SceneDrawables.h:205
Sphere()
Definition: SceneDrawables.h:423