PuzzleSDK
QuaternionTest类 参考

#include <Sprite3DTest.h>

+ 类 QuaternionTest 继承关系图:
+ QuaternionTest 的协作图:

Public 成员函数

 CREATE_FUNC (QuaternionTest)
 
 QuaternionTest ()
 
virtual std::string title () const override
 
virtual std::string subtitle () const override
 
void addNewSpriteWithCoords (cocos2d::Vec2 p)
 
virtual void update (float delta) override
 
- Public 成员函数 继承自 Sprite3DTestDemo
virtual ~Sprite3DTestDemo ()
 
- Public 成员函数 继承自 TestCase
 TestCase ()
 
 ~TestCase ()
 
virtual Type getTestType () const
 
virtual float getDuration () const
 
virtual std::string getExpectedOutput () const
 
virtual std::string getActualOutput () const
 
virtual void restartTestCallback (cocos2d::Ref *sender)
 
virtual void nextTestCallback (cocos2d::Ref *sender)
 
virtual void priorTestCallback (cocos2d::Ref *sender)
 
virtual void onBackCallback (cocos2d::Ref *sender)
 
void setTestSuite (TestSuite *testSuite)
 
TestSuitegetTestSuite () const
 
float getRunTime () const
 
void setTestCaseName (const std::string &name)
 
std::string getTestCaseName () const
 
const cocos2d::Label * getSubtitleLable () const
 
const cocos2d::MenuItemImage * getRestartTestItem () const
 
virtual void onEnter () override
 

Protected 属性

cocos2d::Sprite3D * _sprite
 
float _arcSpeed
 
float _radius
 
float _accAngle
 
- Protected 属性 继承自 TestCase
cocos2d::MenuItemImage * _priorTestItem
 
cocos2d::MenuItemImage * _restartTestItem
 
cocos2d::MenuItemImage * _nextTestItem
 
cocos2d::Label * _titleLabel
 
cocos2d::Label * _subtitleLabel
 

额外继承的成员函数

- Public 类型 继承自 TestCase
enum class  Type { ROBUSTNESS , UNIT , GRAPHICAL_STATIC , MANUAL }
 
- Public 属性 继承自 TestCase
CC_CONSTRUCTOR_ACCESS __pad0__: virtual bool init() override
 

详细描述

在文件 Sprite3DTest.h397 行定义.

构造及析构函数说明

◆ QuaternionTest()

QuaternionTest::QuaternionTest ( )

在文件 Sprite3DTest.cpp1730 行定义.

1731 : _arcSpeed(CC_DEGREES_TO_RADIANS(90))
1732 , _radius(100.f)
1733 , _accAngle(0.f)
1734{
1735 auto s = Director::getInstance()->getWinSize();
1736 addNewSpriteWithCoords(Vec2(s.width / 2.f, s.height / 2.f));
1737 scheduleUpdate();
1738}
void addNewSpriteWithCoords(cocos2d::Vec2 p)

引用了 addNewSpriteWithCoords().

+ 函数调用图:

成员函数说明

◆ addNewSpriteWithCoords()

void QuaternionTest::addNewSpriteWithCoords ( cocos2d::Vec2  p)

在文件 Sprite3DTest.cpp1748 行定义.

1749{
1750 std::string fileName = "Sprite3DTest/tortoise.c3b";
1751 auto sprite = Sprite3D::create(fileName);
1752 sprite->setScale(0.1f);
1753 auto s = Director::getInstance()->getWinSize();
1754 sprite->setPosition(Vec2(s.width / 2.f + _radius * cosf(_accAngle), s.height / 2.f + _radius * sinf(_accAngle)));
1755 addChild(sprite);
1756 _sprite = sprite;
1757 auto animation = Animation3D::create(fileName);
1758 if (animation)
1759 {
1760 auto animate = Animate3D::create(animation, 0.f, 1.933f);
1761 sprite->runAction(RepeatForever::create(animate));
1762 }
1763}
cocos2d::Sprite3D * _sprite
Definition: Sprite3DTest.h:409

引用了 _accAngle, _radius , 以及 _sprite.

被这些函数引用 QuaternionTest().

+ 这是这个函数的调用关系图:

◆ CREATE_FUNC()

QuaternionTest::CREATE_FUNC ( QuaternionTest  )

◆ subtitle()

std::string QuaternionTest::subtitle ( ) const
overridevirtual

重载 TestCase .

在文件 Sprite3DTest.cpp1743 行定义.

1744{
1745 return "";
1746}

◆ title()

std::string QuaternionTest::title ( ) const
overridevirtual

重载 Sprite3DTestDemo .

在文件 Sprite3DTest.cpp1739 行定义.

1740{
1741 return "Test Rotation With Quaternion";
1742}

◆ update()

void QuaternionTest::update ( float  delta)
overridevirtual

在文件 Sprite3DTest.cpp1765 行定义.

1766{
1767 _accAngle += delta * _arcSpeed;
1768 const float pi = (float)M_PI;
1769 if (_accAngle >= 2 * pi)
1770 _accAngle -= 2 * pi;
1771
1772 auto s = Director::getInstance()->getWinSize();
1773 _sprite->setPosition(Vec2(s.width / 2.f + _radius * cosf(_accAngle), s.height / 2.f + _radius * sinf(_accAngle)));
1774
1775 Quaternion quat;
1776 Quaternion::createFromAxisAngle(Vec3(0.f, 0.f, 1.f), _accAngle - pi * 0.5f, &quat);
1777 _sprite->setRotationQuat(quat);
1778}

引用了 _accAngle, _arcSpeed, _radius , 以及 _sprite.

类成员变量说明

◆ _accAngle

float QuaternionTest::_accAngle
protected

在文件 Sprite3DTest.h412 行定义.

被这些函数引用 addNewSpriteWithCoords() , 以及 update().

◆ _arcSpeed

float QuaternionTest::_arcSpeed
protected

在文件 Sprite3DTest.h410 行定义.

被这些函数引用 update().

◆ _radius

float QuaternionTest::_radius
protected

在文件 Sprite3DTest.h411 行定义.

被这些函数引用 addNewSpriteWithCoords() , 以及 update().

◆ _sprite

cocos2d::Sprite3D* QuaternionTest::_sprite
protected

在文件 Sprite3DTest.h409 行定义.

被这些函数引用 addNewSpriteWithCoords() , 以及 update().


该类的文档由以下文件生成: